<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px;">
<div style="font-family: Calibri, sans-serif;">I changed the read_enum_value function to do the swaps and rebuilt. Now the Console.Error.WriteLine() in WindowsRuntimeProjection() produces:</div>
<div style="font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-family: Calibri, sans-serif;"><span style="background-color: rgb(254, 254, 229); font-family: 'Courier New';">WindowsRuntimeProjection - System_Runtime System_Runtime_InteropServices_WindowsRuntime Count</span></div>
<div style="font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-family: Calibri, sans-serif;">Which is what is expected. However, I’m still crashing with NRE later in the build:</div>
<div style="font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-family: Calibri, sans-serif;">
<p style="margin: 0px; font-family: 'Courier New'; background-color: rgb(254, 254, 229);">
Unhandled Exception:</p>
<p style="margin: 0px; font-family: 'Courier New'; background-color: rgb(254, 254, 229);">
Mono.CSharp.InternalErrorException: Microsoft.Win32/RegistryKeyPermissionCheck.cs(31,21): Microsoft.Win32 ---> Mono.CSharp.InternalErrorException: Microsoft.Win32/RegistryKeyPermissionCheck.cs(33,14): Microsoft.Win32.RegistryKeyPermissionCheck ---> System.TypeInitializationException:
 An exception was thrown by the type initializer for IKVM.Reflection.WindowsRuntimeProjection ---> System.NullReferenceException: Object reference not set to an instance of an object</p>
<p style="margin: 0px; font-family: 'Courier New'; background-color: rgb(254, 254, 229);">
  at IKVM.Reflection.TypeName.GetHashCode ()<0x2000800c398 + 0x001bc> in <filename unknown>:0 </p>
<div><br>
</div>
</div>
<span id="OLK_SRC_BODY_SECTION" style="font-family: Calibri, sans-serif;">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<br>
</div>
<div>
<div>
<div dir="ltr">Hi Neale,<br>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
ves_icall_System_Enum_GetEnumValuesAndNames.3229: 0. field=System_Runtime<br>
value=0<br>
ves_icall_System_Enum_GetEnumValuesAndNames.3229: 1.<br>
field=System_Runtime_InteropServices_WindowsRuntime value=16777216<br>
ves_icall_System_Enum_GetEnumValuesAndNames.3229: 2.<br>
field=System_ObjectModel value=33554432<br>
ves_icall_System_Enum_GetEnumValuesAndNames.3229: 3.<br>
field=System_Runtime_WindowsRuntime value=50331648<br>
ves_icall_System_Enum_GetEnumValuesAndNames.3229: 4.<br>
field=System_Runtime_WindowsRuntime_UI_Xaml value=67108864<br>
ves_icall_System_Enum_GetEnumValuesAndNames.3229: 5. field=Count<br>
value=83886080<br>
<br>
Note 16777216 is hex 10000000. Now to find out how that value gets placed<br>
there and to do some byte swapping on it.<br>
</blockquote>
<div><br>
</div>
<div>You are probably looking for <a href="https://github.com/mono/mono/blob/master/mono/metadata/icall.c#L2961">https://github.com/mono/mono/blob/master/mono/metadata/icall.c#L2961</a>. There has been no endian changes there for years but due to different
 codepath this is now hit more often before.</div>
<div><br>
</div>
<div>Marek</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
P.S. I am wondering if it would be worth it to create a routine or more in<br>
icall.c to do the byte swap for 2/4/8 byte integers rather than coding up<br>
clumsy stuff in managed code.<br>
<span class="im"><br>
On 3/10/15, 3:01 PM, "Robert Jordan" <<a href="mailto:robertj@gmx.net">robertj@gmx.net</a>> wrote:<br>
<br>
</span><span class="im">>There was a recent commit which added MS' reference source Enum<br>
>support to Mono:<br>
><br>
><a href="https://github.com/mono/mono/commit/65dba595eaea2c871d1f72fbdc04f6440350af" target="_blank">https://github.com/mono/mono/commit/65dba595eaea2c871d1f72fbdc04f6440350af</a><br>
>96<br>
><br>
>Maybe it's an endian-related issue.<br>
<br>
</span>
<div class="">
<div class="h5">_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</span>
</body>
</html>