hotspot/src/share/vm/ci/ciField.cpp
changeset 22551 9bf46d16dcc6
parent 20017 81eba62e9048
child 25742 07bedc8d1893
equal deleted inserted replaced
22550:820966182ab9 22551:9bf46d16dcc6
   199       }
   199       }
   200       _is_constant = false;
   200       _is_constant = false;
   201       return;
   201       return;
   202     }
   202     }
   203 
   203 
   204     // This field just may be constant.  The only cases where it will
   204     // This field just may be constant.  The only case where it will
   205     // not be constant are:
   205     // not be constant is when the field is a *special* static&final field
   206     //
   206     // whose value may change.  The three examples are java.lang.System.in,
   207     // 1. The field holds a non-perm-space oop.  The field is, strictly
   207     // java.lang.System.out, and java.lang.System.err.
   208     //    speaking, constant but we cannot embed non-perm-space oops into
       
   209     //    generated code.  For the time being we need to consider the
       
   210     //    field to be not constant.
       
   211     // 2. The field is a *special* static&final field whose value
       
   212     //    may change.  The three examples are java.lang.System.in,
       
   213     //    java.lang.System.out, and java.lang.System.err.
       
   214 
   208 
   215     KlassHandle k = _holder->get_Klass();
   209     KlassHandle k = _holder->get_Klass();
   216     assert( SystemDictionary::System_klass() != NULL, "Check once per vm");
   210     assert( SystemDictionary::System_klass() != NULL, "Check once per vm");
   217     if( k() == SystemDictionary::System_klass() ) {
   211     if( k() == SystemDictionary::System_klass() ) {
   218       // Check offsets for case 2: System.in, System.out, or System.err
   212       // Check offsets for case 2: System.in, System.out, or System.err