in language-extensions/java/src/JavaArgContainer.cpp [193:296]
void JavaArg::Cleanup()
{
string msg = "Cleaning up input arg #" + to_string(m_id);
LOG(msg);
if (m_value != nullptr)
{
switch (m_type)
{
case SQL_C_SLONG:
{
int *pValue = reinterpret_cast<int*>(m_value);
delete pValue;
break;
}
case SQL_C_BIT:
{
bool *pValue = reinterpret_cast<bool*>(m_value);
delete pValue;
break;
}
case SQL_C_DOUBLE:
{
double *pValue = reinterpret_cast<double*>(m_value);
delete pValue;
break;
}
case SQL_C_FLOAT:
{
float *pValue = reinterpret_cast<float*>(m_value);
delete pValue;
break;
}
case SQL_C_SBIGINT:
{
long long *pValue = reinterpret_cast<long long*>(m_value);
delete pValue;
break;
}
break;
case SQL_C_UTINYINT:
{
unsigned char *pValue = reinterpret_cast<unsigned char*>(m_value);
delete pValue;
break;
}
case SQL_C_SSHORT:
{
short *pValue = reinterpret_cast<short*>(m_value);
delete pValue;
break;
}
case SQL_C_WCHAR:
case SQL_C_CHAR:
case SQL_C_BINARY:
{
char *pValue = reinterpret_cast<char*>(m_value);
delete[] pValue;
break;
}
case SQL_C_GUID:
{
SQLGUID *pValue = reinterpret_cast<SQLGUID*>(m_value);
delete pValue;
break;
}
case SQL_C_TYPE_DATE:
{
SQL_DATE_STRUCT *pValue = reinterpret_cast<SQL_DATE_STRUCT*>(m_value);
delete pValue;
break;
}
case SQL_C_NUMERIC:
{
SQL_NUMERIC_STRUCT *pValue = reinterpret_cast<SQL_NUMERIC_STRUCT*>(m_value);
delete pValue;
break;
}
case SQL_C_TYPE_TIMESTAMP:
{
SQL_TIMESTAMP_STRUCT *pValue = reinterpret_cast<SQL_TIMESTAMP_STRUCT*>(m_value);
delete pValue;
break;
}
default:
break;
}
}
m_value = nullptr;
m_strLenOrInd = SQL_NULL_DATA;
}