jdk/src/java.desktop/share/native/libfontmanager/HBShaper.c
changeset 40155 b909b3a9277c
parent 34813 b3a2fa246c32
child 40712 0ff80fba9c97
equal deleted inserted replaced
40154:de35b2251350 40155:b909b3a9277c
   276          direction = HB_DIRECTION_RTL;
   276          direction = HB_DIRECTION_RTL;
   277      }
   277      }
   278      hb_buffer_set_direction(buffer, direction);
   278      hb_buffer_set_direction(buffer, direction);
   279 
   279 
   280      chars = (*env)->GetCharArrayElements(env, text, NULL);
   280      chars = (*env)->GetCharArrayElements(env, text, NULL);
       
   281      if ((*env)->ExceptionCheck(env)) {
       
   282          hb_buffer_destroy(buffer);
       
   283          hb_font_destroy(hbfont);
       
   284          free((void*)jdkFontInfo);
       
   285          return JNI_FALSE;
       
   286      }
   281      len = (*env)->GetArrayLength(env, text);
   287      len = (*env)->GetArrayLength(env, text);
   282 
   288 
   283      hb_buffer_add_utf16(buffer, chars, len, offset, limit-offset);
   289      hb_buffer_add_utf16(buffer, chars, len, offset, limit-offset);
   284 
   290 
   285      hb_shape_full(hbfont, buffer, features, featureCount, 0);
   291      hb_shape_full(hbfont, buffer, features, featureCount, 0);
   307 
   313 
   308      hb_buffer_destroy (buffer);
   314      hb_buffer_destroy (buffer);
   309      hb_font_destroy(hbfont);
   315      hb_font_destroy(hbfont);
   310      free((void*)jdkFontInfo);
   316      free((void*)jdkFontInfo);
   311      if (features != NULL) free(features);
   317      if (features != NULL) free(features);
       
   318      (*env)->ReleaseCharArrayElements(env, text, chars, JNI_ABORT);
   312 
   319 
   313      return JNI_TRUE;
   320      return JNI_TRUE;
   314 }
   321 }
   315 
   322