src/hotspot/share/prims/unsafe.cpp
changeset 58282 03fce7b04b42
parent 58177 4932dce35882
child 58679 9c3209ff7550
child 59056 15936b142f86
equal deleted inserted replaced
58281:49836127542b 58282:03fce7b04b42
   667 
   667 
   668   if (UsePerfData) {
   668   if (UsePerfData) {
   669     ClassLoader::unsafe_defineClassCallCounter()->inc();
   669     ClassLoader::unsafe_defineClassCallCounter()->inc();
   670   }
   670   }
   671 
   671 
   672   body = NEW_C_HEAP_ARRAY(jbyte, length, mtInternal);
   672   body = NEW_C_HEAP_ARRAY_RETURN_NULL(jbyte, length, mtInternal);
   673   if (body == NULL) {
   673   if (body == NULL) {
   674     throw_new(env, "java/lang/OutOfMemoryError");
   674     throw_new(env, "java/lang/OutOfMemoryError");
   675     return 0;
   675     return 0;
   676   }
   676   }
   677 
   677 
   683   if (name != NULL) {
   683   if (name != NULL) {
   684     uint len = env->GetStringUTFLength(name);
   684     uint len = env->GetStringUTFLength(name);
   685     int unicode_len = env->GetStringLength(name);
   685     int unicode_len = env->GetStringLength(name);
   686 
   686 
   687     if (len >= sizeof(buf)) {
   687     if (len >= sizeof(buf)) {
   688       utfName = NEW_C_HEAP_ARRAY(char, len + 1, mtInternal);
   688       utfName = NEW_C_HEAP_ARRAY_RETURN_NULL(char, len + 1, mtInternal);
   689       if (utfName == NULL) {
   689       if (utfName == NULL) {
   690         throw_new(env, "java/lang/OutOfMemoryError");
   690         throw_new(env, "java/lang/OutOfMemoryError");
   691         goto free_body;
   691         goto free_body;
   692       }
   692       }
   693     } else {
   693     } else {
   788   jint length = typeArrayOop(JNIHandles::resolve_non_null(data))->length();
   788   jint length = typeArrayOop(JNIHandles::resolve_non_null(data))->length();
   789   assert(length >= 0, "class_bytes_length must not be negative: %d", length);
   789   assert(length >= 0, "class_bytes_length must not be negative: %d", length);
   790 
   790 
   791   int class_bytes_length = (int) length;
   791   int class_bytes_length = (int) length;
   792 
   792 
   793   u1* class_bytes = NEW_C_HEAP_ARRAY(u1, length, mtInternal);
   793   u1* class_bytes = NEW_C_HEAP_ARRAY_RETURN_NULL(u1, length, mtInternal);
   794   if (class_bytes == NULL) {
   794   if (class_bytes == NULL) {
   795     THROW_0(vmSymbols::java_lang_OutOfMemoryError());
   795     THROW_0(vmSymbols::java_lang_OutOfMemoryError());
   796   }
   796   }
   797 
   797 
   798   // caller responsible to free it:
   798   // caller responsible to free it: