Changes
[satune.git] / src / Encoders / elementencoding.c
index b97fee0cb53d49d6cf61b1ff0a9f23a39810d731..08385db6921096a5bb6b3fcd3c010ae4f3360c7b 100644 (file)
@@ -1,12 +1,29 @@
 #include "elementencoding.h"
 
 ElementEncoding * allocElementEncoding(ElementEncodingType type, Element *element) {
-       ElementEncoding * this=(ElementEncoding *)ourmalloc(sizeof(ElementEncoding));
-       this->element=element;
-       this->type=type;
-       return this;
+       ElementEncoding * This=ourmalloc(sizeof(ElementEncoding));
+       This->element=element;
+       This->type=type;
+       This->variables=NULL;
+       This->encodingArray=NULL;
+       This->numVars=0;
+       return This;
 }
 
-void deleteElementEncoding(ElementEncoding *this) {
-       ourfree(this);
+void deleteElementEncoding(ElementEncoding *This) {
+       if (This->variables!=NULL)
+               ourfree(This->variables);
+       if (This->encodingArray!=NULL)
+               ourfree(This->encodingArray);
+       if (This->inUseArray!=NULL)
+               ourfree(This->inUseArray);
+       ourfree(This);
+}
+
+void allocEncodingArrayElement(ElementEncoding *This, uint size) {
+       This->encodingArray=ourcalloc(1, sizeof(uint64_t)*size);
+}
+
+void allocInUseArrayElement(ElementEncoding *This, uint size) {
+       This->inUseArray=ourcalloc(1, size >> 6);
 }