예제 #1
0
 protected long getAddressFromSymbolInfo(VirtualFrame frame, RList symbol) {
   if (addressExtract == null) {
     CompilerDirectives.transferToInterpreterAndInvalidate();
     addressExtract = ExtractVectorNode.create(ElementAccessMode.SUBSCRIPT, true);
   }
   return ((RExternalPtr) addressExtract.applyAccessField(frame, symbol, "address")).getAddr();
 }
예제 #2
0
 protected String getNameFromSymbolInfo(VirtualFrame frame, RList symbol) {
   if (nameExtract == null) {
     CompilerDirectives.transferToInterpreterAndInvalidate();
     nameExtract = ExtractVectorNode.create(ElementAccessMode.SUBSCRIPT, true);
   }
   return RRuntime.asString(nameExtract.applyAccessField(frame, symbol, "name"));
 }