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

Tue, 23 Feb 2016 23:47:11 +0000

author
kevinw
date
Tue, 23 Feb 2016 23:47:11 +0000
changeset 8395
1442c833c50e
parent 8392
a4e26f908dd9
child 8396
d44c7e324682

8149367: PolicyQualifierInfo/index_Ctor JCk test fails with IOE: Invalid encoding for PolicyQualifierInfo
Summary: fix incorrect code
Reviewed-by: kvn, coleenp

src/share/vm/runtime/deoptimization.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/runtime/deoptimization.cpp	Mon Feb 22 13:02:54 2016 -0800
     1.2 +++ b/src/share/vm/runtime/deoptimization.cpp	Tue Feb 23 23:47:11 2016 +0000
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -847,13 +847,25 @@
    1.11        _obj->int_field_put(offset, (jint)*((jint*)&val));
    1.12        break;
    1.13  
    1.14 -    case T_SHORT: case T_CHAR: // 2 bytes
    1.15 +    case T_SHORT:
    1.16        assert(value->type() == T_INT, "Agreement.");
    1.17        val = value->get_int();
    1.18        _obj->short_field_put(offset, (jshort)*((jint*)&val));
    1.19        break;
    1.20  
    1.21 -    case T_BOOLEAN: case T_BYTE: // 1 byte
    1.22 +    case T_CHAR:
    1.23 +      assert(value->type() == T_INT, "Agreement.");
    1.24 +      val = value->get_int();
    1.25 +      _obj->char_field_put(offset, (jchar)*((jint*)&val));
    1.26 +      break;
    1.27 +
    1.28 +    case T_BYTE:
    1.29 +      assert(value->type() == T_INT, "Agreement.");
    1.30 +      val = value->get_int();
    1.31 +      _obj->byte_field_put(offset, (jbyte)*((jint*)&val));
    1.32 +      break;
    1.33 +
    1.34 +    case T_BOOLEAN:
    1.35        assert(value->type() == T_INT, "Agreement.");
    1.36        val = value->get_int();
    1.37        _obj->bool_field_put(offset, (jboolean)*((jint*)&val));
    1.38 @@ -899,13 +911,25 @@
    1.39        obj->int_at_put(index, (jint)*((jint*)&val));
    1.40        break;
    1.41  
    1.42 -    case T_SHORT: case T_CHAR: // 2 bytes
    1.43 +    case T_SHORT:
    1.44        assert(value->type() == T_INT, "Agreement.");
    1.45        val = value->get_int();
    1.46        obj->short_at_put(index, (jshort)*((jint*)&val));
    1.47        break;
    1.48  
    1.49 -    case T_BOOLEAN: case T_BYTE: // 1 byte
    1.50 +    case T_CHAR:
    1.51 +      assert(value->type() == T_INT, "Agreement.");
    1.52 +      val = value->get_int();
    1.53 +      obj->char_at_put(index, (jchar)*((jint*)&val));
    1.54 +      break;
    1.55 +
    1.56 +    case T_BYTE:
    1.57 +      assert(value->type() == T_INT, "Agreement.");
    1.58 +      val = value->get_int();
    1.59 +      obj->byte_at_put(index, (jbyte)*((jint*)&val));
    1.60 +      break;
    1.61 +
    1.62 +    case T_BOOLEAN:
    1.63        assert(value->type() == T_INT, "Agreement.");
    1.64        val = value->get_int();
    1.65        obj->bool_at_put(index, (jboolean)*((jint*)&val));

mercurial