X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Fchr%2FCHRRuntimeRulesetCodeGenerator.java;h=341ba34a796b18ebdd7dbd0850e7649b1328f60f;hp=9ff56eda4cc45eb27dcf29b00c0f9789816215c8;hb=f5c5f79bf2a62515c8c81103a4c8932fc0dcf79d;hpb=fad36d463b75c3a9944d875fc627c3533f6da74d diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/chr/CHRRuntimeRulesetCodeGenerator.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/chr/CHRRuntimeRulesetCodeGenerator.java index 9ff56eda4..341ba34a7 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/chr/CHRRuntimeRulesetCodeGenerator.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/chr/CHRRuntimeRulesetCodeGenerator.java @@ -46,8 +46,8 @@ public class CHRRuntimeRulesetCodeGenerator implements CHRCodeGenerationConstant for(CHRConstraint constraint : ruleset.constraints) if(constraint.nextContainerFieldName != null) storeClassBuilder.addField(Opcodes.ACC_PUBLIC, constraint.nextContainerFieldName, CHRPriorityFactContainer); - if(ruleset.extensible) - storeClassBuilder.addField(Opcodes.ACC_PUBLIC, "currentId", FACT_ID_TYPE); + //if(ruleset.extensible) + // storeClassBuilder.addField(Opcodes.ACC_PUBLIC, "currentId", FACT_ID_TYPE); // Constructors @@ -106,13 +106,16 @@ public class CHRRuntimeRulesetCodeGenerator implements CHRCodeGenerationConstant } // update context id + mb.loadLocal(importedStore); mb.loadLocal(contextVar); + mb.invokeVirtual("org/simantics/scl/runtime/chr/CHRRuntimeRuleset", "register", TypeDesc.VOID, new TypeDesc[] {CHRContext}); + /*mb.loadLocal(contextVar); mb.loadLocal(contextVar); mb.loadField(CHRContext_name, "currentId", FACT_ID_TYPE); mb.loadLocal(importedStore); mb.loadField(include.ruleset.runtimeRulesetClassName, "currentId", FACT_ID_TYPE); mb.invokeStatic("java/lang/Math", "max", FACT_ID_TYPE, new TypeDesc[] {FACT_ID_TYPE, FACT_ID_TYPE}); - mb.storeField(CHRContext_name, "currentId", FACT_ID_TYPE); + mb.storeField(CHRContext_name, "currentId", FACT_ID_TYPE);*/ mb.returnVoid(); mb.finish(); @@ -137,8 +140,11 @@ public class CHRRuntimeRulesetCodeGenerator implements CHRCodeGenerationConstant // store context id mb.loadLocal(importedStore); mb.loadLocal(contextVar); + mb.invokeVirtual("org/simantics/scl/runtime/chr/CHRRuntimeRuleset", "unregister", TypeDesc.VOID, new TypeDesc[] {CHRContext}); + /*mb.loadLocal(importedStore); + mb.loadLocal(contextVar); mb.loadField(CHRContext_name, "currentId", FACT_ID_TYPE); - mb.storeField(include.ruleset.runtimeRulesetClassName, "currentId", FACT_ID_TYPE); + mb.storeField(include.ruleset.runtimeRulesetClassName, "currentId", FACT_ID_TYPE);*/ mb.returnVoid(); mb.finish();