comparison src/share/vm/runtime/signature.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 1d1603768966
children 070d523b96a7
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
334 Symbol* name = SymbolTable::new_symbol(_signature, begin, end, CHECK_NULL); 334 Symbol* name = SymbolTable::new_symbol(_signature, begin, end, CHECK_NULL);
335 _names->push(name); // save new symbol for decrementing later 335 _names->push(name); // save new symbol for decrementing later
336 return name; 336 return name;
337 } 337 }
338 338
339 klassOop SignatureStream::as_klass(Handle class_loader, Handle protection_domain, 339 Klass* SignatureStream::as_klass(Handle class_loader, Handle protection_domain,
340 FailureMode failure_mode, TRAPS) { 340 FailureMode failure_mode, TRAPS) {
341 if (!is_object()) return NULL; 341 if (!is_object()) return NULL;
342 Symbol* name = as_symbol(CHECK_NULL); 342 Symbol* name = as_symbol(CHECK_NULL);
343 if (failure_mode == ReturnNull) { 343 if (failure_mode == ReturnNull) {
344 return SystemDictionary::resolve_or_null(name, class_loader, protection_domain, THREAD); 344 return SystemDictionary::resolve_or_null(name, class_loader, protection_domain, THREAD);
350 350
351 oop SignatureStream::as_java_mirror(Handle class_loader, Handle protection_domain, 351 oop SignatureStream::as_java_mirror(Handle class_loader, Handle protection_domain,
352 FailureMode failure_mode, TRAPS) { 352 FailureMode failure_mode, TRAPS) {
353 if (!is_object()) 353 if (!is_object())
354 return Universe::java_mirror(type()); 354 return Universe::java_mirror(type());
355 klassOop klass = as_klass(class_loader, protection_domain, failure_mode, CHECK_NULL); 355 Klass* klass = as_klass(class_loader, protection_domain, failure_mode, CHECK_NULL);
356 if (klass == NULL) return NULL; 356 if (klass == NULL) return NULL;
357 return Klass::cast(klass)->java_mirror(); 357 return Klass::cast(klass)->java_mirror();
358 } 358 }
359 359
360 Symbol* SignatureStream::as_symbol_or_null() { 360 Symbol* SignatureStream::as_symbol_or_null() {