< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/QuartzSurfaceData.m

Print this page
rev 54096 : 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros
rev 54098 : 8260616: Removing remaining JNF dependencies in the java.desktop module
8259729: Missed JNFInstanceOf -> IsInstanceOf conversion

@@ -33,12 +33,10 @@
 #import "sun_java2d_CRenderer.h"
 #import "sun_java2d_OSXSurfaceData.h"
 #import "sun_lwawt_macosx_CPrinterSurfaceData.h"
 #import "ImageSurfaceData.h"
 
-#import <JavaNativeFoundation/JavaNativeFoundation.h>
-
 #import <AppKit/AppKit.h>
 #import "ThreadUtilities.h"
 
 //#define DEBUG
 #if defined DEBUG

@@ -47,10 +45,16 @@
     #define PRINT(msg) {}
 #endif
 
 #define kOffset (0.5f)
 
+#define JNI_COCOA_THROW_OOME(env, msg) \
+    if ([NSThread isMainThread] == NO) { \
+         JNU_ThrowOutOfMemoryError(env, msg); \
+    } \
+    [NSException raise:@"Java Exception" reason:@"Java OutOfMemoryException" userInfo:nil]
+
 BOOL gAdjustForJavaDrawing;
 
 #pragma mark
 #pragma mark --- Color Cache ---
 

@@ -912,11 +916,11 @@
 {
     static const CGFloat kColorConversionMultiplier = 1.0f/255.0f;
     qsdo->gradientInfo = (StateGradientInfo*)malloc(sizeof(StateGradientInfo));
     if (qsdo->gradientInfo == NULL)
     {
-        [JNFException raise:env as:kOutOfMemoryError reason:"Failed to malloc memory for gradient paint"];
+        JNI_COCOA_THROW_OOME(env, "Failed to malloc memory for gradient paint");
     }
 
     qsdo->graphicsStateInfo.simpleStroke = NO;
     qsdo->graphicsStateInfo.simpleColor = NO;
 

@@ -1013,11 +1017,11 @@
         case sun_java2d_OSXSurfaceData_kColorGradient:
         {
             qsdo->shadingInfo = (StateShadingInfo*)malloc(sizeof(StateShadingInfo));
             if (qsdo->shadingInfo == NULL)
             {
-                [JNFException raise:env as:kOutOfMemoryError reason:"Failed to malloc memory for gradient paint"];
+                JNI_COCOA_THROW_OOME(env, "Failed to malloc memory for gradient paint");
             }
 
             qsdo->graphicsStateInfo.simpleStroke = NO;
             qsdo->graphicsStateInfo.simpleColor = NO;
 

@@ -1059,11 +1063,11 @@
         case sun_java2d_OSXSurfaceData_kColorTexture:
         {
             qsdo->patternInfo = (StatePatternInfo*)malloc(sizeof(StatePatternInfo));
             if (qsdo->patternInfo == NULL)
             {
-                [JNFException raise:env as:kOutOfMemoryError reason:"Failed to malloc memory for texture paint"];
+                JNI_COCOA_THROW_OOME(env, "Failed to malloc memory for texture paint");
             }
 
             qsdo->graphicsStateInfo.simpleStroke = NO;
             qsdo->graphicsStateInfo.simpleColor = NO;
 
< prev index next >