src/share/vm/prims/jni.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 376,397 **** env, (char*) name, loaderRef, (char*) buf, bufLen); #endif /* USDT2 */ jclass cls = NULL; DT_RETURN_MARK(DefineClass, jclass, (const jclass&)cls); // Since exceptions can be thrown, class initialization can take place // if name is NULL no check for class name in .class stream has to be made. if (name != NULL) { const int str_len = (int)strlen(name); if (str_len > Symbol::max_length()) { // It's impossible to create this class; the name cannot fit // into the constant pool. THROW_MSG_0(vmSymbols::java_lang_NoClassDefFoundError(), name); } } - TempNewSymbol class_name = SymbolTable::new_symbol(name, THREAD); - ResourceMark rm(THREAD); ClassFileStream st((u1*) buf, bufLen, NULL); Handle class_loader (THREAD, JNIHandles::resolve(loaderRef)); if (UsePerfData && !class_loader.is_null()) { --- 376,397 ---- env, (char*) name, loaderRef, (char*) buf, bufLen); #endif /* USDT2 */ jclass cls = NULL; DT_RETURN_MARK(DefineClass, jclass, (const jclass&)cls); + TempNewSymbol class_name = NULL; // Since exceptions can be thrown, class initialization can take place // if name is NULL no check for class name in .class stream has to be made. if (name != NULL) { const int str_len = (int)strlen(name); if (str_len > Symbol::max_length()) { // It's impossible to create this class; the name cannot fit // into the constant pool. THROW_MSG_0(vmSymbols::java_lang_NoClassDefFoundError(), name); } + class_name = SymbolTable::new_symbol(name, CHECK_NULL); } ResourceMark rm(THREAD); ClassFileStream st((u1*) buf, bufLen, NULL); Handle class_loader (THREAD, JNIHandles::resolve(loaderRef)); if (UsePerfData && !class_loader.is_null()) {