Author: lupus
Date: 2006-10-17 11:00:44 -0400 (Tue, 17 Oct 2006)
New Revision: 66748
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/reflection.c
Log:
Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <[EMAIL PROTECTED]>
* reflection.c: small cleanup, using a function to insert a MonoString
in the string heap.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2006-10-17 14:46:10 UTC (rev 66747)
+++ trunk/mono/mono/metadata/ChangeLog 2006-10-17 15:00:44 UTC (rev 66748)
@@ -1,4 +1,9 @@
+Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <[EMAIL PROTECTED]>
+
+ * reflection.c: small cleanup, using a function to insert a MonoString
+ in the string heap.
+
Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <[EMAIL PROTECTED]>
* reflection.c: moving GC fixes.
Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c 2006-10-17 14:46:10 UTC (rev
66747)
+++ trunk/mono/mono/metadata/reflection.c 2006-10-17 15:00:44 UTC (rev
66748)
@@ -239,6 +239,16 @@
return idx;
}
+static guint32
+string_heap_insert_mstring (MonoDynamicStream *sh, MonoString *str)
+{
+ char *name = mono_string_to_utf8 (str);
+ guint32 idx;
+ idx = string_heap_insert (sh, name);
+ g_free (name);
+ return idx;
+}
+
static void
string_heap_init (MonoDynamicStream *sh)
{
@@ -1266,7 +1276,6 @@
{
MonoDynamicTable *table;
guint32 *values;
- char *name;
guint i, count;
/* room in this table is already allocated */
@@ -1274,9 +1283,7 @@
*mb->table_idx = table->next_idx ++;
g_hash_table_insert (assembly->method_to_table_idx, mb->mhandle,
GUINT_TO_POINTER ((*mb->table_idx)));
values = table->values + *mb->table_idx * MONO_METHOD_SIZE;
- name = mono_string_to_utf8 (mb->name);
- values [MONO_METHOD_NAME] = string_heap_insert (&assembly->sheap, name);
- g_free (name);
+ values [MONO_METHOD_NAME] = string_heap_insert_mstring
(&assembly->sheap, mb->name);
values [MONO_METHOD_FLAGS] = mb->attrs;
values [MONO_METHOD_IMPLFLAGS] = mb->iattrs;
values [MONO_METHOD_SIGNATURE] = method_builder_encode_signature
(assembly, mb);
@@ -1309,9 +1316,7 @@
values [MONO_PARAM_FLAGS] = pb->attrs;
values [MONO_PARAM_SEQUENCE] = i;
if (pb->name != NULL) {
- name = mono_string_to_utf8 (pb->name);
- values [MONO_PARAM_NAME] =
string_heap_insert (&assembly->sheap, name);
- g_free (name);
+ values [MONO_PARAM_NAME] =
string_heap_insert_mstring (&assembly->sheap, pb->name);
} else {
values [MONO_PARAM_NAME] = 0;
}
@@ -1472,7 +1477,6 @@
{
MonoDynamicTable *table;
guint32 *values;
- char *name;
ReflectionMethodBuilder rmb;
int i;
@@ -1494,14 +1498,10 @@
values [MONO_IMPLMAP_FLAGS] = (mb->native_cc << 8) | ncharset |
extra_flags;
values [MONO_IMPLMAP_MEMBER] = (mb->table_idx << 1) | 1; /*
memberforwarded: method */
if (mb->dllentry)
- name = mono_string_to_utf8 (mb->dllentry);
+ values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring
(&assembly->sheap, mb->dllentry);
else
- name = mono_string_to_utf8 (mb->name);
- values [MONO_IMPLMAP_NAME] = string_heap_insert
(&assembly->sheap, name);
- g_free (name);
- name = mono_string_to_utf8 (mb->dll);
- moduleref = string_heap_insert (&assembly->sheap, name);
- g_free (name);
+ values [MONO_IMPLMAP_NAME] = string_heap_insert_mstring
(&assembly->sheap, mb->name);
+ moduleref = string_heap_insert_mstring (&assembly->sheap,
mb->dll);
if (!(values [MONO_IMPLMAP_SCOPE] = find_index_in_table
(assembly, MONO_TABLE_MODULEREF, MONO_MODULEREF_NAME, moduleref))) {
table = &assembly->tables [MONO_TABLE_MODULEREF];
table->rows ++;
@@ -1808,7 +1808,6 @@
{
MonoDynamicTable *table;
guint32 *values;
- char *name;
/* maybe this fixup should be done in the C# code */
if (fb->attrs & FIELD_ATTRIBUTE_LITERAL)
@@ -1817,9 +1816,7 @@
fb->table_idx = table->next_idx ++;
g_hash_table_insert (assembly->field_to_table_idx, fb->handle,
GUINT_TO_POINTER (fb->table_idx));
values = table->values + fb->table_idx * MONO_FIELD_SIZE;
- name = mono_string_to_utf8 (fb->name);
- values [MONO_FIELD_NAME] = string_heap_insert (&assembly->sheap, name);
- g_free (name);
+ values [MONO_FIELD_NAME] = string_heap_insert_mstring
(&assembly->sheap, fb->name);
values [MONO_FIELD_FLAGS] = fb->attrs;
values [MONO_FIELD_SIGNATURE] = field_encode_signature (assembly, fb);
@@ -1919,7 +1916,6 @@
{
MonoDynamicTable *table;
guint32 *values;
- char *name;
guint num_methods = 0;
guint32 semaidx;
@@ -1933,9 +1929,7 @@
table = &assembly->tables [MONO_TABLE_PROPERTY];
pb->table_idx = table->next_idx ++;
values = table->values + pb->table_idx * MONO_PROPERTY_SIZE;
- name = mono_string_to_utf8 (pb->name);
- values [MONO_PROPERTY_NAME] = string_heap_insert (&assembly->sheap,
name);
- g_free (name);
+ values [MONO_PROPERTY_NAME] = string_heap_insert_mstring
(&assembly->sheap, pb->name);
values [MONO_PROPERTY_FLAGS] = pb->attrs;
values [MONO_PROPERTY_TYPE] = property_encode_signature (assembly, pb);
@@ -1968,7 +1962,6 @@
{
MonoDynamicTable *table;
guint32 *values;
- char *name;
guint num_methods = 0;
guint32 semaidx;
@@ -1982,9 +1975,7 @@
table = &assembly->tables [MONO_TABLE_EVENT];
eb->table_idx = table->next_idx ++;
values = table->values + eb->table_idx * MONO_EVENT_SIZE;
- name = mono_string_to_utf8 (eb->name);
- values [MONO_EVENT_NAME] = string_heap_insert (&assembly->sheap, name);
- g_free (name);
+ values [MONO_EVENT_NAME] = string_heap_insert_mstring
(&assembly->sheap, eb->name);
values [MONO_EVENT_FLAGS] = eb->attrs;
values [MONO_EVENT_TYPE] = mono_image_typedef_or_ref (assembly,
eb->type->type);
@@ -3112,13 +3103,10 @@
{
MonoDynamicTable *table;
int i;
- char *name;
table = &assembly->tables [MONO_TABLE_MODULE];
mb->table_idx = table->next_idx ++;
- name = mono_string_to_utf8 (mb->module.name);
- table->values [mb->table_idx * MONO_MODULE_SIZE + MONO_MODULE_NAME] =
string_heap_insert (&assembly->sheap, name);
- g_free (name);
+ table->values [mb->table_idx * MONO_MODULE_SIZE + MONO_MODULE_NAME] =
string_heap_insert_mstring (&assembly->sheap, mb->module.name);
i = mono_image_add_stream_data (&assembly->guid, mono_array_addr
(mb->guid, char, 0), 16);
i /= 16;
++i;
@@ -3709,7 +3697,6 @@
{
MonoDynamicTable *table;
guint32 *values;
- char *name;
table = &assembly->tables [MONO_TABLE_MANIFESTRESOURCE];
table->rows++;
@@ -3717,9 +3704,7 @@
values = table->values + table->next_idx * MONO_MANIFEST_SIZE;
values [MONO_MANIFEST_OFFSET] = rsrc->offset;
values [MONO_MANIFEST_FLAGS] = rsrc->attrs;
- name = mono_string_to_utf8 (rsrc->name);
- values [MONO_MANIFEST_NAME] = string_heap_insert (&assembly->sheap,
name);
- g_free (name);
+ values [MONO_MANIFEST_NAME] = string_heap_insert_mstring
(&assembly->sheap, rsrc->name);
values [MONO_MANIFEST_IMPLEMENTATION] = implementation;
table->next_idx++;
}
@@ -3846,7 +3831,6 @@
MonoReflectionAssemblyBuilder *assemblyb;
MonoDomain *domain;
guint32 *values;
- char *name;
int i;
guint32 module_index;
@@ -3859,13 +3843,9 @@
alloc_table (table, 1);
values = table->values + MONO_ASSEMBLY_SIZE;
values [MONO_ASSEMBLY_HASH_ALG] = assemblyb->algid? assemblyb->algid:
ASSEMBLY_HASH_SHA1;
- name = mono_string_to_utf8 (assemblyb->name);
- values [MONO_ASSEMBLY_NAME] = string_heap_insert (&assembly->sheap,
name);
- g_free (name);
+ values [MONO_ASSEMBLY_NAME] = string_heap_insert_mstring
(&assembly->sheap, assemblyb->name);
if (assemblyb->culture) {
- name = mono_string_to_utf8 (assemblyb->culture);
- values [MONO_ASSEMBLY_CULTURE] = string_heap_insert
(&assembly->sheap, name);
- g_free (name);
+ values [MONO_ASSEMBLY_CULTURE] = string_heap_insert_mstring
(&assembly->sheap, assemblyb->culture);
} else {
values [MONO_ASSEMBLY_CULTURE] = string_heap_insert
(&assembly->sheap, "");
}
@@ -4012,19 +3992,11 @@
*/
for (i = 0; i < types->len; ++i) {
MonoReflectionTypeBuilder *tb = g_ptr_array_index (types, i);
- char *n;
-
- n = mono_string_to_utf8 (tb->nspace);
- string_heap_insert (&assembly->sheap, n);
- g_free (n);
+ string_heap_insert_mstring (&assembly->sheap, tb->nspace);
}
for (i = 0; i < types->len; ++i) {
MonoReflectionTypeBuilder *tb = g_ptr_array_index (types, i);
- char *n;
-
- n = mono_string_to_utf8 (tb->name);
- string_heap_insert (&assembly->sheap, n);
- g_free (n);
+ string_heap_insert_mstring (&assembly->sheap, tb->name);
}
for (i = 0; i < types->len; ++i) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches