methodpool: bug fix
authorBernhard Urban <lewurm@gmail.com>
Tue, 24 Apr 2012 17:43:34 +0000 (19:43 +0200)
committerBernhard Urban <lewurm@gmail.com>
Tue, 24 Apr 2012 17:43:34 +0000 (19:43 +0200)
doesn't make sense otherwise.
why no testcase covers this? well, when we lose information
about already compiled methods, we just compile them again...

Mate/MethodPool.hs

index 9c3c7275f3a197c5330d775a20d961bbe17e64a3..23d8434b62670206a81f492c09caf959e2f0dd7b 100644 (file)
@@ -121,8 +121,7 @@ addMethodRef :: Word32 -> MethodInfo -> [B.ByteString] -> IO ()
 addMethodRef entry (MethodInfo mmname _ msig) clsnames = do
   mmap <- get_methodmap >>= ptr2mmap
   let newmap = M.fromList $ map (\x -> ((MethodInfo mmname x msig), entry)) clsnames
-  let mmap' = newmap `M.union` newmap
-  mmap2ptr mmap' >>= set_methodmap
+  mmap2ptr (mmap `M.union` newmap) >>= set_methodmap
 
 
 compileBB :: MapBB -> MethodInfo -> IO Word32