CString::~CString() { __destruct(); } // ~CString
CString & CString::operator=(const CString & tString) { __destruct(); __construct(tString.m_pString, tString.m_Length); return (* this); } // operator=
void Value::clear() { switch (_type) { case NONE: case BOOLEAN: case UINT8: case SINT8: case UINT16: case SINT16: case UINT32: case SINT32: case UINT64: case SINT64: case REAL32: case REAL64: case CHAR16: break; case STRING: ((String*)_string)->~String(); break; case DATETIME: ((Datetime*)_string)->~Datetime(); break; case INSTANCE: unref(_instance); break; case BOOLEAN_ARRAY: case UINT8_ARRAY: case SINT8_ARRAY: case UINT16_ARRAY: case SINT16_ARRAY: case UINT32_ARRAY: case SINT32_ARRAY: case UINT64_ARRAY: case SINT64_ARRAY: case REAL32_ARRAY: case REAL64_ARRAY: case CHAR16_ARRAY: case STRING_ARRAY: case DATETIME_ARRAY: __destruct(((__Array_Base*)_array)->rep); break; case INSTANCE_ARRAY: { Array_Instance* inst = (Array_Instance*)(void*)_array; Instance** p = inst->data(); Instance** end = inst->data() + inst->size(); while (p != end) unref(*p++); __destruct(((__Array_Base*)_array)->rep); break; } } _type = NONE; _null = true; }