コード例 #1
0
ファイル: base_cstring.cpp プロジェクト: tbarnabas/compressor
CString::~CString() {
  __destruct();
} // ~CString
コード例 #2
0
ファイル: base_cstring.cpp プロジェクト: tbarnabas/compressor
CString & CString::operator=(const CString & tString) {
  __destruct();
  __construct(tString.m_pString, tString.m_Length);
  return (* this);
} // operator=
コード例 #3
0
ファイル: Value.cpp プロジェクト: LegalizeAdulthood/cimple
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;
}