Skip to content

Commit

Permalink
8288387: GetLocalXXX/SetLocalXXX spec should require suspending targe…
Browse files Browse the repository at this point in the history
…t thread

Reviewed-by: lmesnik, dsamersoff
  • Loading branch information
Serguei Spitsyn committed Oct 17, 2022
1 parent 8d751de commit 21a825e
Show file tree
Hide file tree
Showing 12 changed files with 508 additions and 745 deletions.
55 changes: 55 additions & 0 deletions src/hotspot/share/prims/jvmti.xml
Expand Up @@ -5831,6 +5831,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to retrieve the value of a local
variable whose type is <code>Object</code> or a subclass of <code>Object</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -5873,6 +5875,9 @@ class C2 extends C1 implements I2 {
<error id="JVMTI_ERROR_OPAQUE_FRAME">
Not a visible frame
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -5884,6 +5889,8 @@ class C2 extends C1 implements I2 {
frames. This function can retrieve the "<code>this</code>" object from
native method frames, whereas <code>GetLocalObject()</code> would
return <code>JVMTI_ERROR_OPAQUE_FRAME</code> in those cases.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>new</origin>
<capabilities>
Expand Down Expand Up @@ -5913,6 +5920,9 @@ class C2 extends C1 implements I2 {
<error id="JVMTI_ERROR_INVALID_SLOT">
If the specified frame is a static method frame.
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>
<function id="GetLocalInt" num="22">
Expand All @@ -5922,6 +5932,8 @@ class C2 extends C1 implements I2 {
variable whose type is <code>int</code>,
<code>short</code>, <code>char</code>, <code>byte</code>, or
<code>boolean</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -5966,6 +5978,9 @@ class C2 extends C1 implements I2 {
<error id="JVMTI_ERROR_OPAQUE_FRAME">
Not a visible frame
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -5974,6 +5989,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to retrieve the value of a local
variable whose type is <code>long</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6015,6 +6032,9 @@ class C2 extends C1 implements I2 {
<error id="JVMTI_ERROR_OPAQUE_FRAME">
Not a visible frame
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6023,6 +6043,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to retrieve the value of a local
variable whose type is <code>float</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6064,6 +6086,9 @@ class C2 extends C1 implements I2 {
<error id="JVMTI_ERROR_OPAQUE_FRAME">
Not a visible frame
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6072,6 +6097,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to retrieve the value of a local
variable whose type is <code>long</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6113,6 +6140,9 @@ class C2 extends C1 implements I2 {
<error id="JVMTI_ERROR_OPAQUE_FRAME">
Not a visible frame
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6121,6 +6151,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to set the value of a local
variable whose type is <code>Object</code> or a subclass of <code>Object</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6172,6 +6204,9 @@ class C2 extends C1 implements I2 {
setting the value of locals in the frame of the given depth.
See <internallink id="local">Local Variables</internallink>.
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6182,6 +6217,8 @@ class C2 extends C1 implements I2 {
variable whose type is <code>int</code>,
<code>short</code>, <code>char</code>, <code>byte</code>, or
<code>boolean</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6231,6 +6268,9 @@ class C2 extends C1 implements I2 {
setting the value of locals in the frame of the given depth.
See <internallink id="local">Local Variables</internallink>.
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6239,6 +6279,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to set the value of a local
variable whose type is <code>long</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6285,6 +6327,9 @@ class C2 extends C1 implements I2 {
setting the value of locals in the frame of the given depth.
See <internallink id="local">Local Variables</internallink>.
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6293,6 +6338,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to set the value of a local
variable whose type is <code>float</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6339,6 +6386,9 @@ class C2 extends C1 implements I2 {
setting the value of locals in the frame of the given depth.
See <internallink id="local">Local Variables</internallink>.
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>

Expand All @@ -6347,6 +6397,8 @@ class C2 extends C1 implements I2 {
<description>
This function can be used to set the value of a local
variable whose type is <code>double</code>.
<p/>
The specified thread must be suspended or must be the current thread.
</description>
<origin>jvmdi</origin>
<capabilities>
Expand Down Expand Up @@ -6393,6 +6445,9 @@ class C2 extends C1 implements I2 {
setting the value of locals in the frame of the given depth.
See <internallink id="local">Local Variables</internallink>.
</error>
<error id="JVMTI_ERROR_THREAD_NOT_SUSPENDED">
Thread was not suspended and was not the current thread.
</error>
</errors>
</function>
</category>
Expand Down

1 comment on commit 21a825e

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.