more edits
[satune.git] / src / Encoders / elementencoding.c
index 4a4bc89670583334c61bfd7adf8208bbd4fb401d..47c6ea0fef0f52f917ce7b69e4e09786b3d92e92 100644 (file)
@@ -1,4 +1,8 @@
 #include "elementencoding.h"
+#include "common.h"
+#include "naiveencoder.h"
+#include "element.h"
+#include "satencoder.h"
 
 void initElementEncoding(ElementEncoding * This, Element *element) {
        This->element=element;
@@ -7,6 +11,7 @@ void initElementEncoding(ElementEncoding * This, Element *element) {
        This->encodingArray=NULL;
        This->inUseArray=NULL;
        This->numVars=0;
+       This->encArraySize=0;
 }
 
 void deleteElementEncoding(ElementEncoding *This) {
@@ -20,12 +25,16 @@ void deleteElementEncoding(ElementEncoding *This) {
 
 void allocEncodingArrayElement(ElementEncoding *This, uint size) {
        This->encodingArray=ourcalloc(1, sizeof(uint64_t)*size);
+       This->encArraySize=size;
 }
 
 void allocInUseArrayElement(ElementEncoding *This, uint size) {
-       This->inUseArray=ourcalloc(1, size >> 6);
+       uint bytes = ((size + ((1 << 9)-1)) >> 6)&~7;//Depends on size of inUseArray
+       This->inUseArray=ourcalloc(1, bytes);
 }
 
 void setElementEncodingType(ElementEncoding* This, ElementEncodingType type){
        This->type = type;
 }
+
+