src/share/vm/code/debugInfo.hpp

changeset 1335
9987d9d5eb0e
parent 435
a61af66fc99e
child 1366
72088be4b386
     1.1 --- a/src/share/vm/code/debugInfo.hpp	Fri Jul 31 12:04:07 2009 -0700
     1.2 +++ b/src/share/vm/code/debugInfo.hpp	Fri Jul 31 17:12:33 2009 -0700
     1.3 @@ -255,7 +255,8 @@
     1.4    ScopeValue* read_object_value();
     1.5    ScopeValue* get_cached_object();
     1.6    // BCI encoding is mostly unsigned, but -1 is a distinguished value
     1.7 -  int read_bci() { return read_int() + InvocationEntryBci; }
     1.8 +  // Decoding based on encoding: bci = InvocationEntryBci + read_int()/2; reexecute = read_int()%2 == 1 ? true : false;
     1.9 +  int read_bci_and_reexecute(bool& reexecute) { int i = read_int(); reexecute = (i & 1) ? true : false; return (i >> 1) + InvocationEntryBci; }
    1.10  };
    1.11  
    1.12  // DebugInfoWriteStream specializes CompressedWriteStream for
    1.13 @@ -268,5 +269,6 @@
    1.14   public:
    1.15    DebugInfoWriteStream(DebugInformationRecorder* recorder, int initial_size);
    1.16    void write_handle(jobject h);
    1.17 -  void write_bci(int bci) { write_int(bci - InvocationEntryBci); }
    1.18 +  //Encoding bci and reexecute into one word as (bci - InvocationEntryBci)*2 + reexecute
    1.19 +  void write_bci_and_reexecute(int bci, bool reexecute) { write_int(((bci - InvocationEntryBci) << 1) + (reexecute ? 1 : 0)); }
    1.20  };

mercurial