void JavaArg::Cleanup()

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;
}