diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2014-10-14 09:27:24 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2014-10-14 09:27:24 +0000 |
| commit | f4dc2c0b6e63807d4c7e18383b348534d597aef5 (patch) | |
| tree | 8e10773d6df4ccae32dca3c7ab877e5582323710 /src/compiler/GF/Compile/GenerateBC.hs | |
| parent | 1c2e02ad5026e92ac9b82c6c876bde4281754f21 (diff) | |
bugfix in the bytecode generator
Diffstat (limited to 'src/compiler/GF/Compile/GenerateBC.hs')
| -rw-r--r-- | src/compiler/GF/Compile/GenerateBC.hs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/GF/Compile/GenerateBC.hs b/src/compiler/GF/Compile/GenerateBC.hs index b749a40e1..3d8a7ef3a 100644 --- a/src/compiler/GF/Compile/GenerateBC.hs +++ b/src/compiler/GF/Compile/GenerateBC.hs @@ -68,11 +68,11 @@ compileEquations gr arity st (i:is) eqs fl bs = whilePP eqs Map.empty (EFloat d) -> CASE_LIT (LFlt d) compileBranch0 fl bs ((t,n),eqs) = - let (bs1,instrs) = compileEquations gr arity (st+n) (push_is st n is) eqs fl bs + let (bs1,instrs) = compileEquations gr arity (st+n) (push_is (st+n-1) n is) eqs fl bs in (bs1, case_instr t n (length bs1) : instrs) compileBranch l bs ((t,n),eqs) = - let (bs1,instrs) = compileEquations gr arity (st+n) (push_is st n is) eqs fl ((case_instr t n (length bs1) : instrs) : bs) + let (bs1,instrs) = compileEquations gr arity (st+n) (push_is (st+n-1) n is) eqs fl ((case_instr t n (length bs1) : instrs) : bs) in bs1 mkFail st1 Nothing = FAIL |
