Author: zoltan
Date: 2007-05-23 18:47:58 -0400 (Wed, 23 May 2007)
New Revision: 77876
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/reflection.c
Log:
2007-05-24 Zoltan Varga <[EMAIL PROTECTED]>
* reflection.c (mono_custom_attrs_from_param): Make a copy of the
dynamic attr
info.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2007-05-23 22:47:08 UTC (rev 77875)
+++ trunk/mono/mono/metadata/ChangeLog 2007-05-23 22:47:58 UTC (rev 77876)
@@ -1,3 +1,8 @@
+2007-05-24 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * reflection.c (mono_custom_attrs_from_param): Make a copy of the
dynamic attr
+ info.
+
2007-05-22 Zoltan Varga <[EMAIL PROTECTED]>
* reflection.c (encode_cattr_value): Fix yet another object cattr
encoding issue.
Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c 2007-05-23 22:47:08 UTC (rev
77875)
+++ trunk/mono/mono/metadata/reflection.c 2007-05-23 22:47:58 UTC (rev
77876)
@@ -7324,10 +7324,19 @@
MonoReflectionMethodAux *aux;
if (method->klass->image->dynamic) {
+ MonoCustomAttrInfo *res, *ainfo;
+ int size;
+
aux = g_hash_table_lookup
(((MonoDynamicImage*)method->klass->image)->method_aux_hash, method);
if (!aux || !aux->param_cattr)
return NULL;
- return aux->param_cattr [param];
+
+ /* Need to copy since it will be freed later */
+ ainfo = aux->param_cattr [param];
+ size = sizeof (MonoCustomAttrInfo) + sizeof
(MonoCustomAttrEntry) * (ainfo->num_attrs - MONO_ZERO_LEN_ARRAY);
+ res = g_malloc0 (size);
+ memcpy (res, ainfo, size);
+ return res;
}
image = method->klass->image;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches