You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2006/11/17 15:51:13 UTC

svn commit: r476162 - /incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeCMM.c

Author: varlax
Date: Fri Nov 17 06:51:08 2006
New Revision: 476162

URL: http://svn.apache.org/viewvc?view=rev&rev=476162
Log:
Applied HARMONY-2100 [classlib] java.awt.color.ICC_ProfileRTest fails

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeCMM.c

Modified: incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeCMM.c
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeCMM.c?view=diff&rev=476162&r1=476161&r2=476162
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeCMM.c (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/awt/src/main/native/lcmm/shared/NativeCMM.c Fri Nov 17 06:51:08 2006
@@ -27,7 +27,7 @@
 
 int gl_cmsErrorHandler(int errorCode, const char *msg) {
   if(errorCode == LCMS_ERRC_ABORTED) {
-    errMsg = msg; // Throw exception later, after returning control from cmm
+    errMsg = strdup(msg); // Throw exception later, after returning control from cmm
   }
 
   return 1;
@@ -56,8 +56,11 @@
 
     (*env)->ReleaseByteArrayElements (env, data, byteData, 0);
 
-    if(hProfile == NULL)
+    if(hProfile == NULL) {
         newCMMException(env, errMsg); // Throw java exception if error occured
+        free(errMsg);
+        errMsg = NULL;
+    }
 
   // Return obtained handle
   return (jlong) ((IDATA)hProfile);
@@ -73,8 +76,11 @@
 {
   cmsHPROFILE hProfile = (cmsHPROFILE) ((IDATA)profileID);
 
-    if(!cmsCloseProfile(hProfile))
+    if(!cmsCloseProfile(hProfile)) {
         newCMMException(env, errMsg); // Throw java exception if error occured
+        free(errMsg);
+        errMsg = NULL;
+    }        
 }
 
 /*
@@ -125,11 +131,17 @@
 
 
   if(ts == HEADER_TAG_ID) {
-        if(!cmmGetProfileHeader(hProfile, byteData, dataSize))
+        if(!cmmGetProfileHeader(hProfile, byteData, dataSize)) {
             newCMMException(env, errMsg); // Throw java exception if error occured
+            free(errMsg);
+            errMsg = NULL;
+        }
     } else {
-        if(!cmmGetProfileElement(hProfile, ts, byteData, &dataSize))
+        if(!cmmGetProfileElement(hProfile, ts, byteData, &dataSize)) {
             newCMMException(env, errMsg); // Throw java exception if error occured
+            free(errMsg);
+            errMsg = NULL;
+        }
     }
 
     (*env)->ReleaseByteArrayElements (env, data, byteData, 0);
@@ -181,8 +193,11 @@
             newCMMException(env, "Invalid header data"); // Throw java exception if error occured
 
     } else {
-      if(!cmmSetProfileElement(hProfile, ts, byteData, dataSize))
+      if(!cmmSetProfileElement(hProfile, ts, byteData, dataSize)) {
             newCMMException(env, errMsg); // Throw java exception if error occured
+            free(errMsg);
+            errMsg = NULL;
+      }
     }
 
     (*env)->ReleaseByteArrayElements (env, data, byteData, 0);