Juan Lang : crypt32: Simplify a function.

Alexandre Julliard julliard at winehq.org
Thu Jan 20 12:41:20 CST 2011


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Jan 19 12:08:28 2011 -0800

crypt32: Simplify a function.

---

 dlls/crypt32/str.c |   57 +++++++++++++++++++++++----------------------------
 1 files changed, 26 insertions(+), 31 deletions(-)

diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c
index e0e238b..9d814df 100644
--- a/dlls/crypt32/str.c
+++ b/dlls/crypt32/str.c
@@ -786,46 +786,41 @@ static BOOL CRYPT_EncodeValueWithType(DWORD dwCertEncodingType,
 
     if (value->end > value->start)
     {
+        LONG i;
+        LPWSTR ptr;
+
         nameValue.Value.pbData = CryptMemAlloc((value->end - value->start) *
          sizeof(WCHAR));
         if (!nameValue.Value.pbData)
         {
             SetLastError(ERROR_OUTOFMEMORY);
-            ret = FALSE;
-        }
-    }
-    if (ret)
-    {
-        if (value->end > value->start)
-        {
-            LONG i;
-            LPWSTR ptr = (LPWSTR)nameValue.Value.pbData;
-
-            for (i = 0; i < value->end - value->start; i++)
-            {
-                *ptr++ = value->start[i];
-                if (value->start[i] == '"')
-                    i++;
-            }
-            nameValue.Value.cbData = (LPBYTE)ptr - nameValue.Value.pbData;
+            return FALSE;
         }
-        ret = CryptEncodeObjectEx(dwCertEncodingType, X509_UNICODE_NAME_VALUE,
-         &nameValue, CRYPT_ENCODE_ALLOC_FLAG, NULL, &output->pbData,
-         &output->cbData);
-        if (!ret && ppszError)
+        ptr = (LPWSTR)nameValue.Value.pbData;
+        for (i = 0; i < value->end - value->start; i++)
         {
-            if (type == CERT_RDN_NUMERIC_STRING &&
-             GetLastError() == CRYPT_E_INVALID_NUMERIC_STRING)
-                *ppszError = value->start + output->cbData;
-            else if (type == CERT_RDN_PRINTABLE_STRING &&
-             GetLastError() == CRYPT_E_INVALID_PRINTABLE_STRING)
-                *ppszError = value->start + output->cbData;
-            else if (type == CERT_RDN_IA5_STRING &&
-             GetLastError() == CRYPT_E_INVALID_IA5_STRING)
-                *ppszError = value->start + output->cbData;
+            *ptr++ = value->start[i];
+            if (value->start[i] == '"')
+                i++;
         }
-        CryptMemFree(nameValue.Value.pbData);
+        nameValue.Value.cbData = (LPBYTE)ptr - nameValue.Value.pbData;
+    }
+    ret = CryptEncodeObjectEx(dwCertEncodingType, X509_UNICODE_NAME_VALUE,
+     &nameValue, CRYPT_ENCODE_ALLOC_FLAG, NULL, &output->pbData,
+     &output->cbData);
+    if (!ret && ppszError)
+    {
+        if (type == CERT_RDN_NUMERIC_STRING &&
+         GetLastError() == CRYPT_E_INVALID_NUMERIC_STRING)
+            *ppszError = value->start + output->cbData;
+        else if (type == CERT_RDN_PRINTABLE_STRING &&
+         GetLastError() == CRYPT_E_INVALID_PRINTABLE_STRING)
+            *ppszError = value->start + output->cbData;
+        else if (type == CERT_RDN_IA5_STRING &&
+         GetLastError() == CRYPT_E_INVALID_IA5_STRING)
+            *ppszError = value->start + output->cbData;
     }
+    CryptMemFree(nameValue.Value.pbData);
     return ret;
 }
 




More information about the wine-cvs mailing list