< prev index next >

src/java.desktop/windows/native/libawt/windows/awt_Menu.cpp

Print this page

        

*** 237,246 **** --- 237,247 ---- if (env->EnsureLocalCapacity(2) < 0) { return NULL; } jobject menuItem = env->CallObjectMethod(target, AwtMenu::getItemMID, index); + if (!menuItem) return NULL; // menu item was removed concurrently DASSERT(!safe_ExceptionOccurred(env)); jobject wMenuItemPeer = GetPeerForTarget(env, menuItem); PDATA pData;
*** 262,274 **** if (env->EnsureLocalCapacity(1) < 0) { return; } /* target is a java.awt.Menu */ jobject target = GetTarget(env); ! int nCount = CountItem(target); ! for (int i = 0; i < nCount; i++) { AwtMenuItem* awtMenuItem = GetItem(target, i); if (awtMenuItem != NULL) { SendDrawItem(awtMenuItem, drawInfo); } } --- 263,275 ---- if (env->EnsureLocalCapacity(1) < 0) { return; } /* target is a java.awt.Menu */ jobject target = GetTarget(env); ! if(!target || env->ExceptionCheck()) return; int nCount = CountItem(target); ! for (int i = 0; i < nCount && !env->ExceptionCheck(); i++) { AwtMenuItem* awtMenuItem = GetItem(target, i); if (awtMenuItem != NULL) { SendDrawItem(awtMenuItem, drawInfo); } }
*** 292,303 **** if (env->EnsureLocalCapacity(1) < 0) { return; } /* target is a java.awt.Menu */ jobject target = GetTarget(env); int nCount = CountItem(target); ! for (int i = 0; i < nCount; i++) { AwtMenuItem* awtMenuItem = GetItem(target, i); if (awtMenuItem != NULL) { SendMeasureItem(awtMenuItem, hDC, measureInfo); } } --- 293,305 ---- if (env->EnsureLocalCapacity(1) < 0) { return; } /* target is a java.awt.Menu */ jobject target = GetTarget(env); + if(!target || env->ExceptionCheck()) return; int nCount = CountItem(target); ! for (int i = 0; i < nCount && !env->ExceptionCheck(); i++) { AwtMenuItem* awtMenuItem = GetItem(target, i); if (awtMenuItem != NULL) { SendMeasureItem(awtMenuItem, hDC, measureInfo); } }
< prev index next >