mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-19 10:34:38 +02:00
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:
parent
ea91682fe1
commit
f1b4495911
1 changed files with 28 additions and 4 deletions
|
@ -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));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue