Piotr Caban : msvcp90: Always destroy _Lockit object in use_facet function.

Alexandre Julliard julliard at winehq.org
Thu Jun 28 13:55:17 CDT 2012


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jun 28 10:51:53 2012 +0200

msvcp90: Always destroy _Lockit object in use_facet function.

---

 dlls/msvcp90/locale.c |   56 ++++++++++++++++++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 14 deletions(-)

diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c
index 480861f..6fbe349 100644
--- a/dlls/msvcp90/locale.c
+++ b/dlls/msvcp90/locale.c
@@ -1537,8 +1537,10 @@ ctype_char* ctype_char_use_facet(const locale *loc)
         return (ctype_char*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     ctype_char__Getcat(&fac, loc);
     obj = (ctype_char*)fac;
@@ -2292,8 +2294,10 @@ ctype_wchar* ctype_wchar_use_facet(const locale *loc)
         return (ctype_wchar*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     ctype_wchar__Getcat(&fac, loc);
     obj = (ctype_wchar*)fac;
@@ -2318,8 +2322,10 @@ static ctype_wchar* ctype_short_use_facet(const locale *loc)
         return (ctype_wchar*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     ctype_short__Getcat(&fac, loc);
     obj = (ctype_wchar*)fac;
@@ -2783,8 +2789,10 @@ codecvt_char* codecvt_char_use_facet(const locale *loc)
         return (codecvt_char*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     codecvt_char__Getcat(&fac, loc);
     obj = (codecvt_char*)fac;
@@ -3086,8 +3094,10 @@ static codecvt_wchar* codecvt_wchar_use_facet(const locale *loc)
         return (codecvt_wchar*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     codecvt_wchar__Getcat(&fac, loc);
     obj = (codecvt_wchar*)fac;
@@ -3136,8 +3146,10 @@ static codecvt_wchar* codecvt_short_use_facet(const locale *loc)
         return (codecvt_wchar*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     codecvt_short__Getcat(&fac, loc);
     obj = (codecvt_wchar*)fac;
@@ -3547,8 +3559,10 @@ static numpunct_char* numpunct_char_use_facet(const locale *loc)
         return (numpunct_char*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     numpunct_char__Getcat(&fac, loc);
     obj = (numpunct_char*)fac;
@@ -3904,8 +3918,10 @@ static numpunct_wchar* numpunct_wchar_use_facet(const locale *loc)
         return (numpunct_wchar*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     numpunct_wchar__Getcat(&fac, loc);
     obj = (numpunct_wchar*)fac;
@@ -3950,8 +3966,10 @@ static numpunct_wchar* numpunct_short_use_facet(const locale *loc)
         return (numpunct_wchar*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     numpunct_short__Getcat(&fac, loc);
     obj = (numpunct_wchar*)fac;
@@ -4347,8 +4365,10 @@ num_get* num_get_wchar_use_facet(const locale *loc)
             return (num_get*)fac;
         }
 
-        if(obj)
+        if(obj) {
+            _Lockit_dtor(&lock);
             return obj;
+        }
 
         num_get_wchar__Getcat(&fac, loc);
         obj = (num_get*)fac;
@@ -4385,8 +4405,10 @@ static num_get* num_get_short_use_facet(const locale *loc)
         return (num_get*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     num_get_short__Getcat(&fac, loc);
     obj = (num_get*)fac;
@@ -5483,8 +5505,10 @@ num_get* num_get_char_use_facet(const locale *loc)
         return (num_get*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     num_get_char__Getcat(&fac, loc);
     obj = (num_get*)fac;
@@ -6333,8 +6357,10 @@ num_put* num_put_char_use_facet(const locale *loc)
         return (num_put*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     num_put_char__Getcat(&fac, loc);
     obj = (num_put*)fac;
@@ -6944,8 +6970,10 @@ num_put* num_put_wchar_use_facet(const locale *loc)
         return (num_put*)fac;
     }
 
-    if(obj)
+    if(obj) {
+        _Lockit_dtor(&lock);
         return obj;
+    }
 
     num_put_wchar__Getcat(&fac, loc);
     obj = (num_put*)fac;




More information about the wine-cvs mailing list