A little OCD not to split generation setup with initialization of children loop
authorbdemsky <bdemsky@uci.edu>
Fri, 14 Jul 2017 22:05:55 +0000 (15:05 -0700)
committerbdemsky <bdemsky@uci.edu>
Fri, 14 Jul 2017 22:05:55 +0000 (15:05 -0700)
src/Backend/satfuncencoder.c

index e64cb09ff00b59a79fb07e7945852fa4c3bd8c7a..d7fb6a289c2c5acaaa334d6e37102111d941af5c 100644 (file)
@@ -253,12 +253,13 @@ void encodeEnumTableElemFunctionSATEncoder(SATEncoder* This, ElementFunction* fu
        //FIXME: HANDLE UNDEFINED BEHAVIORS
        ASSERT(GETFUNCTIONTYPE(func->function)==TABLEFUNC);
        ArrayElement* elements= &func->inputs;
-       Table* table = ((FunctionTable*) (func->function))->table;
-       uint size = getSizeVectorTableEntry(&table->entries);
        for(uint i=0; i<getSizeArrayElement(elements); i++){
                Element *elem = getArrayElement( elements, i);
                encodeElementSATEncoder(This, elem);
        }
+
+       Table* table = ((FunctionTable*) (func->function))->table;
+       uint size = getSizeVectorTableEntry(&table->entries);
        Edge constraints[size]; //FIXME: should add a space for the case that didn't match any entries
        for(uint i=0; i<size; i++) {
                TableEntry* entry = getVectorTableEntry(&table->entries, i);