38 void VLXValue::release()
43 if (mUnion.mStructure)
44 mUnion.mStructure->decReference();
49 mUnion.mList->decReference();
53 if (mUnion.mRawtextBlock)
54 mUnion.mRawtextBlock->decReference();
65 mUnion.mArray->decReference();
72 delete mUnion.mString;
73 mUnion.mString =
NULL;
86 mLineNumber = other.mLineNumber;
92 if (other.mUnion.mStructure)
93 other.mUnion.mStructure->incReference();
97 if (other.mUnion.mList)
98 other.mUnion.mList->incReference();
102 if (other.mUnion.mRawtextBlock)
103 other.mUnion.mRawtextBlock->incReference();
113 if (other.mUnion.mArray)
114 other.mUnion.mArray->incReference();
124 mUnion = other.mUnion;
128 if (mType ==
String || mType == Identifier || mType == ID)
129 mUnion.mString =
new std::string(*mUnion.mString);
138 mUnion.mStructure = obj;
139 if (mUnion.mStructure)
161 mType = RawtextBlock;
162 mUnion.mRawtextBlock = fblock;
163 if (mUnion.mRawtextBlock)
172 mType = ArrayInteger;
227 if (arr->classType() == VLXArrayInteger::Type())
230 if (arr->classType() == VLXArrayReal::Type())
Wrapper for all VLX value types.
The String class implements an advanced UTF16 (Unicode BMP) string manipulation engine.
An array of 64 bits floating point numbers, can also have a tag.
Visualization Library main namespace.
A list of key/VLXValue pairs, can also have a tag.
A simple sequence of VLXValue objects, can also have a tag.
T * as()
Casts an Object to the specified class.
An array of 64 bits integers, can also have a tag.
Base class for all arrays of VLX values.
void incReference() const
Increments the reference count of an object.