提交 9e8a7b0f 编写于 作者: K kizune

7175566: [macosx] Glich in fix for CR7124247 caused MacOS crash during PIT testing

Reviewed-by: anthony, dcherepanov
上级 e7debbc7
...@@ -92,8 +92,8 @@ static jobject createJavaDisplayMode(CGDisplayModeRef mode, JNIEnv *env, jint di ...@@ -92,8 +92,8 @@ static jobject createJavaDisplayMode(CGDisplayModeRef mode, JNIEnv *env, jint di
CFStringRef currentBPP = CGDisplayModeCopyPixelEncoding(mode); CFStringRef currentBPP = CGDisplayModeCopyPixelEncoding(mode);
bpp = getBPPFromModeString(currentBPP); bpp = getBPPFromModeString(currentBPP);
refrate = CGDisplayModeGetRefreshRate(mode); refrate = CGDisplayModeGetRefreshRate(mode);
h = CGDisplayPixelsHigh(displayID); h = CGDisplayModeGetHeight(mode);
w = CGDisplayPixelsWide(displayID); w = CGDisplayModeGetWidth(mode);
CFRelease(currentBPP); CFRelease(currentBPP);
static JNF_CLASS_CACHE(jc_DisplayMode, "java/awt/DisplayMode"); static JNF_CLASS_CACHE(jc_DisplayMode, "java/awt/DisplayMode");
static JNF_CTOR_CACHE(jc_DisplayMode_ctor, jc_DisplayMode, "(IIII)V"); static JNF_CTOR_CACHE(jc_DisplayMode_ctor, jc_DisplayMode, "(IIII)V");
...@@ -154,14 +154,18 @@ Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode ...@@ -154,14 +154,18 @@ Java_sun_awt_CGraphicsDevice_nativeSetDisplayMode
CFArrayRef allModes = CGDisplayCopyAllDisplayModes(displayID, NULL); CFArrayRef allModes = CGDisplayCopyAllDisplayModes(displayID, NULL);
CGDisplayModeRef closestMatch = getBestModeForParameters(allModes, (int)w, (int)h, (int)bpp, (int)refrate); CGDisplayModeRef closestMatch = getBestModeForParameters(allModes, (int)w, (int)h, (int)bpp, (int)refrate);
if (closestMatch != NULL) { if (closestMatch != NULL) {
[JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
CGDisplayConfigRef config; CGDisplayConfigRef config;
CGError retCode = CGBeginDisplayConfiguration(&config); CGError retCode = CGBeginDisplayConfiguration(&config);
if (retCode == kCGErrorSuccess) { if (retCode == kCGErrorSuccess) {
CGConfigureDisplayWithDisplayMode(config, displayID, closestMatch, NULL); CGConfigureDisplayWithDisplayMode(config, displayID, closestMatch, NULL);
CGCompleteDisplayConfiguration(config, kCGConfigureForAppOnly); CGCompleteDisplayConfiguration(config, kCGConfigureForAppOnly);
if (config != NULL) {
CFRelease(config); CFRelease(config);
} }
} }
}];
}
CFRelease(allModes); CFRelease(allModes);
JNF_COCOA_EXIT(env); JNF_COCOA_EXIT(env);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册