4040 */
4141package com .oracle .truffle .api .object ;
4242
43- import static com .oracle .truffle .api .object .ObjectStorageOptions .UseVarHandle ;
44-
4543import java .util .Objects ;
4644import java .util .concurrent .atomic .AtomicReferenceFieldUpdater ;
4745
@@ -205,25 +203,17 @@ protected double getDouble(DynamicObject store, boolean guard) throws Unexpected
205203 */
206204 final Object getInternal (DynamicObject store , Shape expectedShape , boolean guard ) {
207205 if (this instanceof ObjectLocation objectLocation ) {
208- Object value ;
209- done : {
210- Object base ;
211- long offset ;
212- if (field == null ) {
213- base = getObjectArray (store , guard );
214- offset = getObjectArrayOffset ();
215- } else {
216- if (UseVarHandle ) {
217- value = field .varHandle ().get (store );
218- break done ;
219- } else {
220- field .receiverCheck (store );
221- base = store ;
222- offset = getFieldOffset ();
223- }
224- }
225- value = UnsafeAccess .unsafeGetObject (base , offset , guard , this );
206+ Object base ;
207+ long offset ;
208+ if (field == null ) {
209+ base = getObjectArray (store , guard );
210+ offset = getObjectArrayOffset ();
211+ } else {
212+ field .receiverCheck (store );
213+ base = store ;
214+ offset = getFieldOffset ();
226215 }
216+ Object value = UnsafeAccess .unsafeGetObject (base , offset , guard , this );
227217 return CompilerDirectives .inInterpreter () ? value : objectLocation .assumedTypeCast (value , guard );
228218 } else {
229219 if (field == null ) {
@@ -239,13 +229,8 @@ final Object getInternal(DynamicObject store, Shape expectedShape, boolean guard
239229 return ((ConstantLocation ) this ).get (store , guard );
240230 }
241231 } else {
242- long longValue ;
243- if (UseVarHandle ) {
244- longValue = (long ) field .varHandle ().get (store );
245- } else {
246- field .receiverCheck (store );
247- longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
248- }
232+ field .receiverCheck (store );
233+ long longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
249234 if (this instanceof IntLocation ) {
250235 return (int ) longValue ;
251236 } else if (this instanceof LongLocation ) {
@@ -268,13 +253,8 @@ final int getIntInternal(DynamicObject store, Shape expectedShape, boolean guard
268253 long offset = getPrimitiveArrayOffset ();
269254 return UnsafeAccess .unsafeGetInt (array , offset , guard , this );
270255 } else {
271- long longValue ;
272- if (UseVarHandle ) {
273- longValue = (long ) field .varHandle ().get (store );
274- } else {
275- field .receiverCheck (store );
276- longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
277- }
256+ field .receiverCheck (store );
257+ long longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
278258 return (int ) longValue ;
279259 }
280260 }
@@ -300,14 +280,8 @@ final long getLongInternal(DynamicObject store, Shape expectedShape, boolean gua
300280 long offset = getPrimitiveArrayOffset ();
301281 return UnsafeAccess .unsafeGetLong (array , offset , guard , this );
302282 } else {
303- long longValue ;
304- if (UseVarHandle ) {
305- longValue = (long ) field .varHandle ().get (store );
306- } else {
307- field .receiverCheck (store );
308- longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
309- }
310- return longValue ;
283+ field .receiverCheck (store );
284+ return UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
311285 }
312286 }
313287 return getLongUnexpected (store , expectedShape , guard );
@@ -332,13 +306,8 @@ final double getDoubleInternal(DynamicObject store, Shape expectedShape, boolean
332306 long offset = getPrimitiveArrayOffset ();
333307 return UnsafeAccess .unsafeGetDouble (array , offset , guard , this );
334308 } else {
335- long longValue ;
336- if (UseVarHandle ) {
337- longValue = (long ) field .varHandle ().get (store );
338- } else {
339- field .receiverCheck (store );
340- longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
341- }
309+ field .receiverCheck (store );
310+ long longValue = UnsafeAccess .unsafeGetLong (store , getFieldOffset (), guard , this );
342311 return Double .longBitsToDouble (longValue );
343312 }
344313 }
@@ -493,14 +462,9 @@ final void setInternal(DynamicObject receiver, Object value, boolean guard, Shap
493462 base = getObjectArray (receiver , guard );
494463 offset = getObjectArrayOffset ();
495464 } else {
496- if (UseVarHandle ) {
497- field .varHandle ().set (receiver , value );
498- return ;
499- } else {
500- field .receiverCheck (receiver );
501- base = receiver ;
502- offset = getFieldOffset ();
503- }
465+ field .receiverCheck (receiver );
466+ base = receiver ;
467+ offset = getFieldOffset ();
504468 }
505469 UnsafeAccess .unsafePutObject (base , offset , value , this );
506470 } else { // primitive location
@@ -550,13 +514,9 @@ final void setInternal(DynamicObject receiver, Object value, boolean guard, Shap
550514 assert isConstantLocation () : this ;
551515 return ;
552516 }
553- if (UseVarHandle ) {
554- field .varHandle ().set (receiver , longValue );
555- } else {
556- field .receiverCheck (receiver );
557- long offset = getFieldOffset ();
558- UnsafeAccess .unsafePutLong (receiver , offset , longValue , this );
559- }
517+ field .receiverCheck (receiver );
518+ long offset = getFieldOffset ();
519+ UnsafeAccess .unsafePutLong (receiver , offset , longValue , this );
560520 }
561521 }
562522
0 commit comments