Author: zoltan
Date: 2005-03-24 09:46:17 -0500 (Thu, 24 Mar 2005)
New Revision: 42217
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/reflection.c
Log:
2005-03-24 Zoltan Varga <[EMAIL PROTECTED]>
* reflection.c (create_custom_attr): Allocate the params array using
alloca so it gets GC tracking.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2005-03-24 14:30:33 UTC (rev 42216)
+++ trunk/mono/mono/metadata/ChangeLog 2005-03-24 14:46:17 UTC (rev 42217)
@@ -1,3 +1,8 @@
+2005-03-24 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * reflection.c (create_custom_attr): Allocate the params array using
+ alloca so it gets GC tracking.
+
2005-03-23 Chris Toshok <[EMAIL PROTECTED]>
* mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c 2005-03-24 14:30:33 UTC (rev
42216)
+++ trunk/mono/mono/metadata/reflection.c 2005-03-24 14:46:17 UTC (rev
42217)
@@ -6580,9 +6580,10 @@
return NULL;
/*g_print ("got attr %s\n", method->klass->name);*/
-
- params = g_new (void*, mono_method_signature (method)->param_count);
+ /* Allocate using alloca so it gets GC tracking */
+ params = alloca (mono_method_signature (method)->param_count * sizeof
(void*));
+
/* skip prolog */
p += 2;
for (i = 0; i < mono_method_signature (method)->param_count; ++i) {
@@ -6593,7 +6594,6 @@
attr = mono_object_new (mono_domain_get (), method->klass);
mono_runtime_invoke (method, attr, params, NULL);
free_param_data (method->signature, params);
- g_free (params);
num_named = read16 (named);
named += 2;
for (j = 0; j < num_named; j++) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches