Daniel Lehman : dbghelp: Add support for char32_t type.

Alexandre Julliard julliard at winehq.org
Thu May 4 18:06:27 CDT 2017


Module: wine
Branch: master
Commit: 8d6cf80026c7bcd2e04ea20c20e82a5730d45ec8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8d6cf80026c7bcd2e04ea20c20e82a5730d45ec8

Author: Daniel Lehman <dlehman25 at gmail.com>
Date:   Wed May  3 23:16:41 2017 -0700

dbghelp: Add support for char32_t type.

Signed-off-by: Daniel Lehman <dlehman25 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dbghelp/msc.c     | 4 ++++
 include/cvconst.h      | 3 ++-
 include/wine/mscvpdb.h | 7 +++++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index 5c474d8..eba2649 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -170,6 +170,7 @@ static void codeview_init_basic_types(struct module* module)
     cv_basic_types[T_RCHAR]  = &symt_new_basic(module, btInt,   "signed char", 1)->symt;
     cv_basic_types[T_WCHAR]  = &symt_new_basic(module, btWChar, "wchar_t", 2)->symt;
     cv_basic_types[T_CHAR16] = &symt_new_basic(module, btChar16,"char16_t", 2)->symt;
+    cv_basic_types[T_CHAR32] = &symt_new_basic(module, btChar32,"char32_t", 4)->symt;
     cv_basic_types[T_INT2]   = &symt_new_basic(module, btInt,   "INT2", 2)->symt;
     cv_basic_types[T_UINT2]  = &symt_new_basic(module, btUInt,  "UINT2", 2)->symt;
     cv_basic_types[T_INT4]   = &symt_new_basic(module, btInt,   "INT4", 4)->symt;
@@ -197,6 +198,7 @@ static void codeview_init_basic_types(struct module* module)
     cv_basic_types[T_32PRCHAR]  = &symt_new_pointer(module, cv_basic_types[T_RCHAR], 4)->symt;
     cv_basic_types[T_32PWCHAR]  = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 4)->symt;
     cv_basic_types[T_32PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 4)->symt;
+    cv_basic_types[T_32PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], 4)->symt;
     cv_basic_types[T_32PINT2]   = &symt_new_pointer(module, cv_basic_types[T_INT2], 4)->symt;
     cv_basic_types[T_32PUINT2]  = &symt_new_pointer(module, cv_basic_types[T_UINT2], 4)->symt;
     cv_basic_types[T_32PINT4]   = &symt_new_pointer(module, cv_basic_types[T_INT4], 4)->symt;
@@ -224,6 +226,7 @@ static void codeview_init_basic_types(struct module* module)
     cv_basic_types[T_64PRCHAR]  = &symt_new_pointer(module, cv_basic_types[T_RCHAR], 8)->symt;
     cv_basic_types[T_64PWCHAR]  = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 8)->symt;
     cv_basic_types[T_64PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 8)->symt;
+    cv_basic_types[T_64PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], 8)->symt;
     cv_basic_types[T_64PINT2]   = &symt_new_pointer(module, cv_basic_types[T_INT2], 8)->symt;
     cv_basic_types[T_64PUINT2]  = &symt_new_pointer(module, cv_basic_types[T_UINT2], 8)->symt;
     cv_basic_types[T_64PINT4]   = &symt_new_pointer(module, cv_basic_types[T_INT4], 8)->symt;
@@ -251,6 +254,7 @@ static void codeview_init_basic_types(struct module* module)
     cv_basic_types[T_PRCHAR]  = &symt_new_pointer(module, cv_basic_types[T_RCHAR],  sizeof(void*))->symt;
     cv_basic_types[T_PWCHAR]  = &symt_new_pointer(module, cv_basic_types[T_WCHAR],  sizeof(void*))->symt;
     cv_basic_types[T_PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], sizeof(void*))->symt;
+    cv_basic_types[T_PCHAR32] = &symt_new_pointer(module, cv_basic_types[T_CHAR32], sizeof(void*))->symt;
     cv_basic_types[T_PINT2]   = &symt_new_pointer(module, cv_basic_types[T_INT2],   sizeof(void*))->symt;
     cv_basic_types[T_PUINT2]  = &symt_new_pointer(module, cv_basic_types[T_UINT2],  sizeof(void*))->symt;
     cv_basic_types[T_PINT4]   = &symt_new_pointer(module, cv_basic_types[T_INT4],   sizeof(void*))->symt;
diff --git a/include/cvconst.h b/include/cvconst.h
index 5580258..80b8e44 100644
--- a/include/cvconst.h
+++ b/include/cvconst.h
@@ -78,7 +78,8 @@ enum BasicType
     btBit = 29,
     btBSTR = 30,
     btHresult = 31,
-    btChar16 = 32
+    btChar16 = 32,
+    btChar32 = 33
 };
 
 /* kind of UDT */
diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index d053b69..2f0b479 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -872,6 +872,7 @@ union codeview_fieldtype
 #define T_INT8              0x0076  /* 64-bit signed int */
 #define T_UINT8             0x0077  /* 64-bit unsigned int */
 #define T_CHAR16            0x007a  /* 16-bit unicode char */
+#define T_CHAR32            0x007b  /* 32-bit unicode char */
 
 /* near pointers to basic types */
 #define T_PVOID             0x0103  /* near pointer to void */
@@ -905,6 +906,7 @@ union codeview_fieldtype
 #define T_PINT8             0x0176  /* Near pointer to 64-bit signed int */
 #define T_PUINT8            0x0177  /* Near pointer to 64-bit unsigned int */
 #define T_PCHAR16           0x017a  /* Near pointer to 16-bit unicode char */
+#define T_PCHAR32           0x017b  /* Near pointer to 32-bit unicode char */
 
 /* far pointers to basic types */
 #define T_PFVOID            0x0203  /* Far pointer to void */
@@ -938,6 +940,7 @@ union codeview_fieldtype
 #define T_PFINT8            0x0276  /* Far pointer to 64-bit signed int */
 #define T_PFUINT8           0x0277  /* Far pointer to 64-bit unsigned int */
 #define T_PFCHAR16          0x027a  /* Far pointer to 16-bit unicode char */
+#define T_PFCHAR32          0x027b  /* Far pointer to 32-bit unicode char */
 
 /* huge pointers to basic types */
 #define T_PHVOID            0x0303  /* Huge pointer to void */
@@ -971,6 +974,7 @@ union codeview_fieldtype
 #define T_PHINT8            0x0376  /* Huge pointer to 64-bit signed int */
 #define T_PHUINT8           0x0377  /* Huge pointer to 64-bit unsigned int */
 #define T_PHCHAR16          0x037a  /* Huge pointer to 16-bit unicode char */
+#define T_PHCHAR32          0x037b  /* Huge pointer to 32-bit unicode char */
 
 /* 32-bit near pointers to basic types */
 #define T_32PVOID           0x0403  /* 32-bit near pointer to void */
@@ -1005,6 +1009,7 @@ union codeview_fieldtype
 #define T_32PINT8           0x0476  /* 16:32 near pointer to 64-bit signed int */
 #define T_32PUINT8          0x0477  /* 16:32 near pointer to 64-bit unsigned int */
 #define T_32PCHAR16         0x047a  /* 16:32 near pointer to 16-bit unicode char */
+#define T_32PCHAR32         0x047b  /* 16:32 near pointer to 32-bit unicode char */
 
 /* 32-bit far pointers to basic types */
 #define T_32PFVOID          0x0503  /* 32-bit far pointer to void */
@@ -1039,6 +1044,7 @@ union codeview_fieldtype
 #define T_32PFINT8          0x0576  /* 16:32 far pointer to 64-bit signed int */
 #define T_32PFUINT8         0x0577  /* 16:32 far pointer to 64-bit unsigned int */
 #define T_32PFCHAR16        0x057a  /* 16:32 far pointer to 16-bit unicode char */
+#define T_32PFCHAR32        0x057b  /* 16:32 far pointer to 32-bit unicode char */
 
 /* 64-bit near pointers to basic types */
 #define T_64PVOID           0x0603  /* 64-bit near pointer to void */
@@ -1073,6 +1079,7 @@ union codeview_fieldtype
 #define T_64PINT8           0x0676  /* 64 near pointer to 64-bit signed int */
 #define T_64PUINT8          0x0677  /* 64 near pointer to 64-bit unsigned int */
 #define T_64PCHAR16         0x067a  /* 64 near pointer to 16-bit unicode char */
+#define T_64PCHAR32         0x067b  /* 64 near pointer to 32-bit unicode char */
 
 /* counts, bit masks, and shift values needed to access various parts of the built-in type numbers */
 #define T_MAXPREDEFINEDTYPE 0x0580  /* maximum type index for all built-in types */




More information about the wine-cvs mailing list