src/share/native/sun/font/FontInstanceAdapter.cpp

Print this page

        

@@ -220,14 +220,20 @@
     }
 
     jobject pt = env->NewObject(sunFontIDs.pt2DFloatClass,
                                 sunFontIDs.pt2DFloatCtr,
                                 adjustment.fX, adjustment.fY);
+    if (pt == NULL) {
+        env->ExceptionClear();
+        adjustment.fX = 0.0f;
+        adjustment.fY = 0.0f;
+    } else {
     env->CallObjectMethod(fontStrike, sunFontIDs.adjustPointMID, pt);
     adjustment.fX = env->GetFloatField(pt, sunFontIDs.xFID);
     adjustment.fY = env->GetFloatField(pt, sunFontIDs.yFID);
 }
+}
 
 void FontInstanceAdapter::getWideGlyphAdvance(le_uint32 glyph, LEPoint &advance) const
 {
     if ((glyph & 0xfffe) == 0xfffe) {
         advance.fX = 0;