From 763ba8d86ee230a21a7061b47525d6a4fe01d99d Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 7 Apr 2004 16:42:25 +0000 Subject: [PATCH 1/1] * appdomain.c: Revert extra patches, just wanted to bump the version number. svn path=/trunk/mono/; revision=25162 --- mono/metadata/ChangeLog | 5 ++++ mono/metadata/appdomain.c | 48 +++++++++++++++++++++++++++++++++++---- 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index eb5c3e887df..22c3eba29f7 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2004-04-07 Jackson Harper + + * appdomain.c: Revert extra patches, just wanted to bump the + version number. + 2004-04-07 Jackson Harper * Makefile.am: Add culture-info private headers. diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c index dc78de3b3b9..131622a0468 100644 --- a/mono/metadata/appdomain.c +++ b/mono/metadata/appdomain.c @@ -751,7 +751,6 @@ free_assembly_name (MonoAssemblyName *aname) g_free ((void *) aname->name); g_free ((void *) aname->culture); g_free ((void *) aname->hash_value); - g_free ((void *) aname->public_tok_value); } static gboolean @@ -810,10 +809,49 @@ get_info_from_assembly_name (MonoString *assRef, MonoAssemblyName *aname) tmp++; value += 15; if (*value && strcmp (value, "null")) { - gchar *t = g_strdup (value); - g_strchug (t); - aname->public_tok_value = g_strdup (g_strchomp (t)); - g_free (t); + gint i, len; + gchar h, l; + gchar *result; + + value = g_strstrip (g_strdup (value)); + len = strlen (value); + if (len % 2) { + g_free (value); + g_strfreev (parts); + return FALSE; + } + + aname->hash_len = len / 2; + aname->hash_value = g_malloc0 (aname->hash_len); + result = (gchar *) aname->hash_value; + + for (i = 0; i < len; i++) { + if (i % 2) { + l = g_ascii_xdigit_value (value [i]); + if (l == -1) { + g_free (value); + g_strfreev (parts); + return FALSE; + } + result [i / 2] = (h * 16) + l; + } else { + h = g_ascii_xdigit_value (value [i]); + if (h == -1) { + g_free (value); + g_strfreev (parts); + return FALSE; + } + } + } + g_free (value); + + /* + g_print ("PublicKeyToken: "); + for (i = 0; i < aname->hash_len; i++) { + g_print ("%x", 0x00FF & aname->hash_value [i]); + } + g_print ("\n"); + */ } } } -- 2.25.1