Author: zoltan
Date: 2005-03-01 04:59:08 -0500 (Tue, 01 Mar 2005)
New Revision: 41313
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/metadata.c
trunk/mono/mono/metadata/metadata.h
trunk/mono/mono/metadata/object-internals.h
trunk/mono/mono/metadata/reflection.c
Log:
2005-03-01 Zoltan Varga <[EMAIL PROTECTED]>
* metadata.h (MonoMarshalSpec): Add comment.
* metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
* metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
num_elem to -1 if not given.
* object-internals.h (MonoReflectionMarshal): Add has_size field.
* reflection.c (encode_marshal_blob): Differentiate between 0 and not
given values.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2005-03-01 09:56:21 UTC (rev 41312)
+++ trunk/mono/mono/metadata/ChangeLog 2005-03-01 09:59:08 UTC (rev 41313)
@@ -1,3 +1,17 @@
+2005-03-01 Zoltan Varga <[EMAIL PROTECTED]>
+
+ * metadata.h (MonoMarshalSpec): Add comment.
+
+ * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
+
+ * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
+ num_elem to -1 if not given.
+
+ * object-internals.h (MonoReflectionMarshal): Add has_size field.
+
+ * reflection.c (encode_marshal_blob): Differentiate between 0 and not
+ given values.
+
2005-03-01 Marek Safar <[EMAIL PROTECTED]>
* null-gc.c (mono_gc_free_fixed): Was not compilable.
Modified: trunk/mono/mono/metadata/metadata.c
===================================================================
--- trunk/mono/mono/metadata/metadata.c 2005-03-01 09:56:21 UTC (rev 41312)
+++ trunk/mono/mono/metadata/metadata.c 2005-03-01 09:59:08 UTC (rev 41313)
@@ -3425,6 +3425,9 @@
res->native = *ptr++;
if (res->native == MONO_NATIVE_LPARRAY) {
+ res->data.array_data.param_num = -1;
+ res->data.array_data.num_elem = -1;
+
if (ptr - start <= len)
res->data.array_data.elem_type = *ptr++;
if (ptr - start <= len)
Modified: trunk/mono/mono/metadata/metadata.h
===================================================================
--- trunk/mono/mono/metadata/metadata.h 2005-03-01 09:56:21 UTC (rev 41312)
+++ trunk/mono/mono/metadata/metadata.h 2005-03-01 09:59:08 UTC (rev 41313)
@@ -95,6 +95,7 @@
MONO_MARSHAL_CONV_STR_BSTR,
MONO_MARSHAL_CONV_STR_LPSTR,
MONO_MARSHAL_CONV_LPSTR_STR,
+ MONO_MARSHAL_CONV_LPTSTR_STR,
MONO_MARSHAL_CONV_STR_LPWSTR,
MONO_MARSHAL_CONV_LPWSTR_STR,
MONO_MARSHAL_CONV_STR_LPTSTR,
@@ -125,8 +126,8 @@
union {
struct {
MonoMarshalNative elem_type;
- gint32 param_num;
- gint32 num_elem;
+ gint32 param_num; /* -1 if not set */
+ gint32 num_elem; /* -1 if not set */
} array_data;
struct {
char *custom_name;
Modified: trunk/mono/mono/metadata/object-internals.h
===================================================================
--- trunk/mono/mono/metadata/object-internals.h 2005-03-01 09:56:21 UTC (rev
41312)
+++ trunk/mono/mono/metadata/object-internals.h 2005-03-01 09:59:08 UTC (rev
41313)
@@ -644,6 +644,7 @@
MonoString *marshaltype;
MonoReflectionType *marshaltyperef;
gint32 param_num;
+ MonoBoolean has_size;
} MonoReflectionMarshal;
typedef struct {
Modified: trunk/mono/mono/metadata/reflection.c
===================================================================
--- trunk/mono/mono/metadata/reflection.c 2005-03-01 09:56:21 UTC (rev
41312)
+++ trunk/mono/mono/metadata/reflection.c 2005-03-01 09:59:08 UTC (rev
41313)
@@ -1633,9 +1633,9 @@
mono_metadata_encode_value (minfo->count, p, &p);
break;
case MONO_NATIVE_LPARRAY:
- if (minfo->eltype || (minfo->count > 0) || (minfo->param_num >
0)) {
+ if (minfo->eltype || minfo->has_size) {
mono_metadata_encode_value (minfo->eltype, p, &p);
- if ((minfo->count > 0) || (minfo->param_num > 0)) {
+ if (minfo->has_size) {
mono_metadata_encode_value (minfo->param_num,
p, &p);
mono_metadata_encode_value (minfo->count, p,
&p);
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches