8149367: PolicyQualifierInfo/index_Ctor JCk test fails with IOE: Invalid encoding for PolicyQualifierInfo

Fix incorrect code

Reviewed-by: jrose, coleenp, kevinw
This commit is contained in:
Vladimir Kozlov 2016-02-20 14:11:18 -08:00
parent ea91682fe1
commit f1b4495911

View file

@ -896,13 +896,25 @@ void Deoptimization::reassign_type_array_elements(frame* fr, RegisterMap* reg_ma
break; break;
} }
case T_SHORT: case T_CHAR: // 2 bytes case T_SHORT:
assert(value->type() == T_INT, "Agreement."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
obj->short_at_put(index, (jshort)*((jint*)&val)); obj->short_at_put(index, (jshort)*((jint*)&val));
break; break;
case T_BOOLEAN: case T_BYTE: // 1 byte case T_CHAR:
assert(value->type() == T_INT, "Agreement.");
val = value->get_int();
obj->char_at_put(index, (jchar)*((jint*)&val));
break;
case T_BYTE:
assert(value->type() == T_INT, "Agreement.");
val = value->get_int();
obj->byte_at_put(index, (jbyte)*((jint*)&val));
break;
case T_BOOLEAN:
assert(value->type() == T_INT, "Agreement."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
obj->bool_at_put(index, (jboolean)*((jint*)&val)); obj->bool_at_put(index, (jboolean)*((jint*)&val));
@ -1017,13 +1029,25 @@ static int reassign_fields_by_klass(InstanceKlass* klass, frame* fr, RegisterMap
break; break;
} }
case T_SHORT: case T_CHAR: // 2 bytes case T_SHORT:
assert(value->type() == T_INT, "Agreement."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
obj->short_field_put(offset, (jshort)*((jint*)&val)); obj->short_field_put(offset, (jshort)*((jint*)&val));
break; break;
case T_BOOLEAN: case T_BYTE: // 1 byte case T_CHAR:
assert(value->type() == T_INT, "Agreement.");
val = value->get_int();
obj->char_field_put(offset, (jchar)*((jint*)&val));
break;
case T_BYTE:
assert(value->type() == T_INT, "Agreement.");
val = value->get_int();
obj->byte_field_put(offset, (jbyte)*((jint*)&val));
break;
case T_BOOLEAN:
assert(value->type() == T_INT, "Agreement."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
obj->bool_field_put(offset, (jboolean)*((jint*)&val)); obj->bool_field_put(offset, (jboolean)*((jint*)&val));