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

Reply via email to