Mercurial > hg > truffle
comparison src/share/vm/ci/ciKlass.cpp @ 1604:b918d354830a
6960865: ldc of unloaded class throws an assert in ciTypeFlow
Summary: Support java_mirror for unloaded klasses, arrays as well as instances. Simplify ciTypeFlow by removing unused path.
Reviewed-by: kvn
author | jrose |
---|---|
date | Sat, 12 Jun 2010 22:53:43 -0700 |
parents | c18cbe5936b8 |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1603:d93949c5bdcc | 1604:b918d354830a |
---|---|
190 klass_name, false); | 190 klass_name, false); |
191 } | 191 } |
192 | 192 |
193 // ------------------------------------------------------------------ | 193 // ------------------------------------------------------------------ |
194 // ciKlass::java_mirror | 194 // ciKlass::java_mirror |
195 // | |
196 // Get the instance of java.lang.Class corresponding to this klass. | |
197 // If it is an unloaded instance or array klass, return an unloaded | |
198 // mirror object of type Class. | |
195 ciInstance* ciKlass::java_mirror() { | 199 ciInstance* ciKlass::java_mirror() { |
196 GUARDED_VM_ENTRY( | 200 GUARDED_VM_ENTRY( |
201 if (!is_loaded()) | |
202 return ciEnv::current()->get_unloaded_klass_mirror(this); | |
197 oop java_mirror = get_Klass()->java_mirror(); | 203 oop java_mirror = get_Klass()->java_mirror(); |
198 return CURRENT_ENV->get_object(java_mirror)->as_instance(); | 204 return CURRENT_ENV->get_object(java_mirror)->as_instance(); |
199 ) | 205 ) |
200 } | 206 } |
201 | 207 |