Mercurial > hg > truffle
comparison src/share/vm/ci/ciTypeFlow.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 | e9ff18c4ace7 |
children | 0e35fa8ebccd |
comparison
equal
deleted
inserted
replaced
1603:d93949c5bdcc | 1604:b918d354830a |
---|---|
710 } | 710 } |
711 if (basic_type == T_OBJECT || basic_type == T_ARRAY) { | 711 if (basic_type == T_OBJECT || basic_type == T_ARRAY) { |
712 ciObject* obj = con.as_object(); | 712 ciObject* obj = con.as_object(); |
713 if (obj->is_null_object()) { | 713 if (obj->is_null_object()) { |
714 push_null(); | 714 push_null(); |
715 } else if (obj->is_klass()) { | |
716 // The type of ldc <class> is java.lang.Class | |
717 push_object(outer()->env()->Class_klass()); | |
718 } else { | 715 } else { |
716 assert(!obj->is_klass(), "must be java_mirror of klass"); | |
719 push_object(obj->klass()); | 717 push_object(obj->klass()); |
720 } | 718 } |
721 } else { | 719 } else { |
722 push_translate(ciType::make(basic_type)); | 720 push_translate(ciType::make(basic_type)); |
723 } | 721 } |