@@ -153,9 +153,6 @@ module MemoryMapping =
153153 let OPEN_EXISTING = 0x0003
154154 let OPEN_ALWAYS = 0x0004
155155
156- let derefByte ( p : nativeint ) =
157- NativePtr.read ( NativePtr.ofNativeInt< byte> p)
158-
159156type MemoryMappedFile ( hMap : MemoryMapping.HANDLE , start : nativeint ) =
160157 inherit BinaryFile()
161158
@@ -182,37 +179,38 @@ type MemoryMappedFile(hMap: MemoryMapping.HANDLE, start:nativeint) =
182179 start + nativeint i
183180
184181 override m.ReadByte i =
185- derefByte ( m.Addr i)
182+ Marshal.ReadByte ( m.Addr i)
186183
187184 override m.ReadBytes i len =
188185 let res = Bytes.zeroCreate len
189186 Marshal.Copy( m.Addr i, res, 0 , len)
190187 res
191188
192189 override m.ReadInt32 i =
193- NativePtr.read ( NativePtr.ofNativeInt < int32 > ( m.Addr i))
190+ Marshal.ReadInt32 ( m.Addr i)
194191
195192 override m.ReadUInt16 i =
196- NativePtr.read ( NativePtr.ofNativeInt < uint16 > ( m.Addr i))
193+ uint16 ( Marshal.ReadInt16 ( m.Addr i))
197194
198195 member m.Close () =
199196 ignore( MemoryMapping.UnmapViewOfFile start)
200197 ignore( MemoryMapping.CloseHandle hMap)
201198
202199 override m.CountUtf8String i =
203- let start = m.Addr i
200+ let start = m.Addr i
204201 let mutable p = start
205- while derefByte p <> 0 uy do
202+ while Marshal.ReadByte ( p ) <> 0 uy do
206203 p <- p + 1 n
207204 int ( p - start)
208205
209206 override m.ReadUTF8String i =
210207 let n = m.CountUtf8String i
211- #if FX_ RESHAPED_ REFLECTION
212- System.Text.Encoding.UTF8.GetString( NativePtr.ofNativeInt ( m.Addr i), n)
213- #else
214- new System.String( NativePtr.ofNativeInt ( m.Addr i), 0 , n, System.Text.Encoding.UTF8)
215- #endif
208+ System.Runtime.InteropServices.Marshal.PtrToStringAnsi(( m.Addr i), n)
209+ //#if FX_RESHAPED_REFLECTION
210+ // System.Text.Encoding.UTF8.GetString(NativePtr.ofNativeInt (m.Addr i), n)
211+ //#else
212+ // new System.String(NativePtr.ofNativeInt (m.Addr i), 0, n, System.Text.Encoding.UTF8)
213+ //#endif
216214
217215
218216//---------------------------------------------------------------------
@@ -1486,7 +1484,7 @@ let dataEndPoints ctxtH =
14861484 let rva = ctxt.resourcesAddr + offset
14871485 res := ( " manifest resource" , rva) :: ! res
14881486 ! res
1489- if isNil dataStartPoints then []
1487+ if List.isEmpty dataStartPoints then []
14901488 else
14911489 let methodRVAs =
14921490 let res = ref []
@@ -2184,7 +2182,7 @@ and seekReadMemberRefAsMethodDataUncached ctxtH (MemberRefAsMspecIdx (numtypars,
21842182
21852183and seekReadMemberRefAsMethDataNoVarArgs ctxt numtypars idx : MethodData =
21862184 let ( VarArgMethodData ( enclTyp , cc , nm , argtys , varargs , retty , minst )) = seekReadMemberRefAsMethodData ctxt numtypars idx
2187- if isSome varargs then dprintf " ignoring sentinel and varargs in ILMethodDef token signature"
2185+ if Option. isSome varargs then dprintf " ignoring sentinel and varargs in ILMethodDef token signature"
21882186 ( MethodData( enclTyp, cc, nm, argtys, retty, minst))
21892187
21902188and seekReadMethodSpecAsMethodData ctxt numtypars idx =
@@ -3964,16 +3962,20 @@ let OpenILModuleReader infile opts =
39643962
39653963// ++GLOBAL MUTABLE STATE
39663964let ilModuleReaderCache =
3967- new Internal.Utilities.Collections.AgedLookup<( string * System.DateTime), ILModuleReader>( 0 , areSame=( fun ( x , y ) -> x = y))
3965+ new Internal.Utilities.Collections.AgedLookup<( string * System.DateTime * string * bool ), ILModuleReader>( 0 , areSame=( fun ( x , y ) -> x = y))
39683966
39693967
39703968let OpenILModuleReaderAfterReadingAllBytes infile opts =
39713969 // Pseudo-normalize the paths.
39723970 let key , succeeded =
3973- try ( FileSystem.GetFullPathShim( infile), FileSystem.GetLastWriteTimeShim( infile)), true
3971+ try
3972+ ( FileSystem.GetFullPathShim( infile),
3973+ FileSystem.GetLastWriteTimeShim( infile),
3974+ opts.ilGlobals.primaryAssemblyName,
3975+ opts.ilGlobals.noDebugData), true
39743976 with e ->
39753977 System.Diagnostics.Debug.Assert( false , " Failed to compute key in OpenILModuleReaderAfterReadingAllBytes cache. Falling back to uncached." )
3976- ( " " , System.DateTime.Now), false
3978+ ( " " , System.DateTime.Now, " " , false ), false
39773979 let cacheResult =
39783980 if not succeeded then None // Fall back to uncached.
39793981 else if opts.pdbPath.IsSome then None // can't used a cached entry when reading PDBs, since it makes the returned object IDisposable
@@ -3987,7 +3989,7 @@ let OpenILModuleReaderAfterReadingAllBytes infile opts =
39873989 { modul = modul
39883990 ilAssemblyRefs = ilAssemblyRefs
39893991 dispose = ( fun () -> ClosePdbReader pdb) }
3990- if isNone pdb && succeeded then
3992+ if Option. isNone pdb && succeeded then
39913993 ilModuleReaderCache.Put( key, ilModuleReader)
39923994 ilModuleReader
39933995
0 commit comments