diff --git a/Test/JavaSources/Main.java b/Test/JavaSources/Main.java index aa84965..92c2929 100644 --- a/Test/JavaSources/Main.java +++ b/Test/JavaSources/Main.java @@ -1,7 +1,7 @@ // compile all test files using: // ls Test/JavaSources/*.java | grep -v ".*Main.java" | xargs -I {} cabal run compiler {} // compile (in project root) using: -// javac -g:none -sourcepath Test/JavaSources/ Test/JavaSources/Main.java +// pushd Test/JavaSources; javac -g:none Main.java; popd // afterwards, run using // java -ea -cp Test/JavaSources/ Main diff --git a/src/ByteCode/Util.hs b/src/ByteCode/Util.hs index 4271e11..1e28397 100644 --- a/src/ByteCode/Util.hs +++ b/src/ByteCode/Util.hs @@ -220,7 +220,7 @@ getKnownMembers constants = let getClassIndex :: [ConstantInfo] -> String -> ([ConstantInfo], Int) getClassIndex constants name = case findClassIndex constants name of Just index -> (constants, index) - Nothing -> (constants ++ [ClassInfo (fromIntegral (length constants)), Utf8Info name], fromIntegral (length constants)) + Nothing -> (constants ++ [ClassInfo (fromIntegral (length constants) + 2), Utf8Info name], fromIntegral (length constants) + 1) -- get the index for a field within a class, creating it if it does not exist. getFieldIndex :: [ConstantInfo] -> (String, String, String) -> ([ConstantInfo], Int)