From: Ilya Portnov Date: Sun, 2 Oct 2011 18:54:17 +0000 (+0600) Subject: Minor fixes. X-Git-Tag: v0.3.2~10^2~15 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hs-java.git;a=commitdiff_plain;h=a5b3a851dd5472d67108b13ba0cbeacb35e9e72d Minor fixes. --- diff --git a/JVM/ClassFile.hs b/JVM/ClassFile.hs index d2f3029..1cf0494 100644 --- a/JVM/ClassFile.hs +++ b/JVM/ClassFile.hs @@ -222,6 +222,7 @@ deriving instance Eq (Constant File) deriving instance Eq (Constant Direct) deriving instance Show (Constant File) +-- | Default (empty) class file definition. defaultClass :: (Default (AccessFlags stage), Default (Link stage B.ByteString), Default (Attributes stage)) => Class stage defaultClass = Class { diff --git a/JVM/Converter.hs b/JVM/Converter.hs index 911024c..52b3483 100644 --- a/JVM/Converter.hs +++ b/JVM/Converter.hs @@ -62,7 +62,7 @@ classDirect2File (Class {..}) = in d { constsPoolSize = fromIntegral (M.size poolInfo + 1), constsPool = poolInfo, - accessFlags = access2word16 accessFlags, + accessFlags = accessDirect2File accessFlags, thisClass = force "this" $ poolClassIndex poolInfo thisClass, superClass = force "super" $ poolClassIndex poolInfo superClass, interfacesCount = fromIntegral (length interfaces), @@ -139,7 +139,7 @@ poolNTIndex list x@(NameType n t) = do fieldDirect2File :: Pool File -> Field Direct -> Field File fieldDirect2File pool (Field {..}) = Field { - fieldAccessFlags = access2word16 fieldAccessFlags, + fieldAccessFlags = accessDirect2File fieldAccessFlags, fieldName = force "field name" $ poolIndex pool fieldName, fieldSignature = force "signature" $ poolIndex pool (encode fieldSignature), fieldAttributesCount = fromIntegral (arsize fieldAttributes), @@ -150,7 +150,7 @@ fieldDirect2File pool (Field {..}) = Field { methodDirect2File :: Pool File -> Method Direct -> Method File methodDirect2File pool (Method {..}) = Method { - methodAccessFlags = access2word16 methodAccessFlags, + methodAccessFlags = accessDirect2File methodAccessFlags, methodName = force "method name" $ poolIndex pool methodName, methodSignature = force "method sig" $ poolIndex pool (encode methodSignature), methodAttributesCount = fromIntegral (arsize methodAttributes), @@ -205,8 +205,8 @@ accessFile2Direct w = S.fromList $ concat $ zipWith (\i f -> if testBit w i then ACC_INTERFACE, ACC_ABSTRACT ] -access2word16 :: AccessFlags Direct -> AccessFlags File -access2word16 fs = bitsOr $ map toBit $ S.toList fs +accessDirect2File :: AccessFlags Direct -> AccessFlags File +accessDirect2File fs = bitsOr $ map toBit $ S.toList fs where bitsOr = foldl (.|.) 0 toBit f = 1 `shiftL` (fromIntegral $ fromEnum f)