Piotr Caban : msvcrt: Don' t output __ptr64 when UNDNAME_NO_MS_KEYWORDS is used.

Alexandre Julliard julliard at winehq.org
Tue Oct 22 13:30:43 CDT 2013


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Oct 22 16:47:06 2013 +0200

msvcrt: Don't output __ptr64 when UNDNAME_NO_MS_KEYWORDS is used.

---

 dlls/msvcrt/tests/cpp.c |    1 +
 dlls/msvcrt/undname.c   |   20 +++++++++++++-------
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/dlls/msvcrt/tests/cpp.c b/dlls/msvcrt/tests/cpp.c
index 037c88f..c8ff25d 100644
--- a/dlls/msvcrt/tests/cpp.c
+++ b/dlls/msvcrt/tests/cpp.c
@@ -1320,6 +1320,7 @@ static void test_demangle(void)
            "?_dispatch at _impl_Engine@SalomeApp@@$R4CE at BA@PPPPPPPM at 7AE_NAAVomniCallHandle@@@Z"},
 /* 126 */ {"?_Doraise at bad_cast@std@@MEBAXXZ", "protected: virtual void __cdecl std::bad_cast::_Doraise(void)", NULL, 0x60},
 /* 127 */ {"??Xstd@@YAAEAV?$complex at M@0 at AEAV10@AEBV10@@Z", "class std::complex<float> & ptr64 cdecl std::operator*=(class std::complex<float> & ptr64,class std::complex<float> const & ptr64)", NULL, 1},
+/* 128 */ {"??Xstd@@YAAEAV?$complex at M@0 at AEAV10@AEBV10@@Z", "class std::complex<float> & std::operator*=(class std::complex<float> &,class std::complex<float> const &)", NULL, 2},
     };
     int i, num_test = (sizeof(test)/sizeof(test[0]));
     char* name;
diff --git a/dlls/msvcrt/undname.c b/dlls/msvcrt/undname.c
index 7cd8468..beaec4f 100644
--- a/dlls/msvcrt/undname.c
+++ b/dlls/msvcrt/undname.c
@@ -406,9 +406,12 @@ static BOOL get_modifier(struct parsed_symbol *sym, const char **ret, const char
     *ptr_modif = NULL;
     if (*sym->current == 'E')
     {
-        *ptr_modif = "__ptr64";
-        if (sym->flags & UNDNAME_NO_LEADING_UNDERSCORES)
-            *ptr_modif = *ptr_modif + 2;
+        if (!(sym->flags & UNDNAME_NO_MS_KEYWORDS))
+        {
+            *ptr_modif = "__ptr64";
+            if (sym->flags & UNDNAME_NO_LEADING_UNDERSCORES)
+                *ptr_modif = *ptr_modif + 2;
+        }
         sym->current++;
     }
     switch (*sym->current++)
@@ -431,10 +434,13 @@ static BOOL get_modified_type(struct datatype_t *ct, struct parsed_symbol* sym,
 
     if (*sym->current == 'E')
     {
-        if (sym->flags & UNDNAME_NO_LEADING_UNDERSCORES)
-            ptr_modif = " ptr64";
-        else
-            ptr_modif = " __ptr64";
+        if (!(sym->flags & UNDNAME_NO_MS_KEYWORDS))
+        {
+            if (sym->flags & UNDNAME_NO_LEADING_UNDERSCORES)
+                ptr_modif = " ptr64";
+            else
+                ptr_modif = " __ptr64";
+        }
         sym->current++;
     }
 




More information about the wine-cvs mailing list