diff options
author | Frank Schönheit <fs@openoffice.org> | 2000-11-08 14:09:43 +0000 |
---|---|---|
committer | Frank Schönheit <fs@openoffice.org> | 2000-11-08 14:09:43 +0000 |
commit | ba001fe5e4eb5d0099fdd6164d9a8960950d5a7d (patch) | |
tree | db125d99be19d278be8bb9c4d6ac545aa95b06ec /connectivity | |
parent | f8385b2e5afefebedd030fc8c4c0ff0dccec11db (diff) |
releaseBuffer - correclty delete the buffers
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/source/drivers/odbc/OResultSet.cxx | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/connectivity/source/drivers/odbc/OResultSet.cxx b/connectivity/source/drivers/odbc/OResultSet.cxx index c7e6769731fe..dfed2f6e527f 100644 --- a/connectivity/source/drivers/odbc/OResultSet.cxx +++ b/connectivity/source/drivers/odbc/OResultSet.cxx @@ -2,9 +2,9 @@ * * $RCSfile: OResultSet.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: oj $ $Date: 2000-10-24 16:27:55 $ + * last change: $Author: fs $ $Date: 2000-11-08 15:09:43 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -268,53 +268,54 @@ void OResultSet::releaseBuffer() { Reference< XResultSetMetaData > xMeta = getMetaData(); sal_Int32 nLen = xMeta->getColumnCount(); - for(sal_Int32 i = 0;i<nLen;++i) + void** pValue = m_aBindVector.begin() + 1; + for(sal_Int32 i = 1; i<=nLen; ++i, ++pValue) { - switch (xMeta->getColumnType(i+1)) + switch (xMeta->getColumnType(i)) { case DataType::CHAR: case DataType::VARCHAR: - delete (::rtl::OString*) m_aBindVector[i]; + delete static_cast< ::rtl::OString* >(*pValue); break; case DataType::DECIMAL: case DataType::NUMERIC: case DataType::BIGINT: - delete (::rtl::OString*) m_aBindVector[i]; + delete static_cast< ::rtl::OString* >(*pValue); break; case DataType::DOUBLE: - m_aBindVector.push_back(new double(0.0)); + delete static_cast< double* >(*pValue); break; case DataType::LONGVARCHAR: - delete (char*) m_aBindVector[i]; + delete static_cast< char* >(*pValue); break; case DataType::LONGVARBINARY: - delete (char*) m_aBindVector[i]; + delete static_cast< char* >(*pValue); break; case DataType::DATE: - delete (DATE_STRUCT*) m_aBindVector[i]; + delete static_cast< DATE_STRUCT* >(*pValue); break; case DataType::TIME: - delete (TIME_STRUCT*) m_aBindVector[i]; + delete static_cast< TIME_STRUCT* >(*pValue); break; case DataType::TIMESTAMP: - delete (TIMESTAMP_STRUCT*) m_aBindVector[i]; + delete static_cast< TIMESTAMP_STRUCT* >(*pValue); break; case DataType::BIT: - delete (sal_Int8*) m_aBindVector[i]; + delete static_cast< sal_Int8* >(*pValue); break; case DataType::TINYINT: case DataType::SMALLINT: - delete (sal_Int16*) m_aBindVector[i]; + delete static_cast< sal_Int16* >(*pValue); break; case DataType::INTEGER: - delete (sal_Int32*) m_aBindVector[i]; + delete static_cast< sal_Int32* >(*pValue); break; case DataType::REAL: - delete (float*) m_aBindVector[i]; + delete static_cast< float* >(*pValue); break; case DataType::BINARY: case DataType::VARBINARY: - delete (sal_Int8*) m_aBindVector[i]; + delete static_cast< sal_Int8* >(*pValue); break; } } |