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 }