Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=79117 --- shadow/79117 2006-08-21 15:26:47.000000000 -0400 +++ shadow/79117.tmp.18666 2006-08-23 08:39:23.000000000 -0400 @@ -116,6 +116,56 @@ ------- Additional Comments From [EMAIL PROTECTED] 2006-08-21 15:26 ------- Created an attachment (id=17489) icall.diff + +------- Additional Comments From [EMAIL PROTECTED] 2006-08-23 08:39 ------- +Robert, some observations/questions: + +- SystemDefaultCharSize is hardcoded to 2, that doesn't seem to be +right. + +- Are unix systems always ANSI (since all Marshal.***Auto methods are +mapped to Ansi icalls) ? + +- If SystemDefaultCharSize would return the correct results, then +wouldn't it be better modify the Marshal class to invoke the right +icall depending on SystemDefaultCharSize instead of using compile +time conditionals ? + +- mono_lookup_pinvoke_call in loader.c seems to use a wrong mechanism +for looking up the entrypoint in the unmanaged dll. If exactspelling +is false on the DllImport (PINVOKE_ATTRIBUTE_NO_MANGLE is not set), +then it only searches for the mangled name instead of first searching +for the unmangled name. Also, when the charset is set to +PINVOKE_ATTRIBUTE_CHAR_SET_AUTO, it should use the character size of +the system (1 or 2) to determine whether to look for the ANSI ("A") +or Unicode ("W") function. Right now, the unicode function is always +used on WIN32, and the ANSI one on all other platforms. More +information on this topic is available here: +http://msdn2.microsoft.com/en-us/library/7b93s42f.aspx + +- Marshal.StringToHGlobalAuto appears to be broken in the same way as +PtrToStringAuto is. My initial repro demonstrates this as I get the +following output after I applied your patch: + +395 +395 +Windows saved user ?????????♥???ï registry while an application or +service was ...... + +Updating your patch for StringToHGlobalAuto fixes this problem, but +a better solution would probably be to fix +SystemDefaultCharSize. + +Can you confirm my observations ? + +What do you propose ? Should I split this bug report into separate +ones for: + +- SystemDefaultCharSize +- mono_lookup_pinvoke_call +- PtrToString*/SStringToHGlobal* + +Gert
_______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
