diff truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/StructuredData.java @ 22499:9bba3a7b34be

Check foreign arguments when accessing ComplexNumber/Sequence objects
author Matthias Grimmer <grimmer@ssw.jku.at>
date Mon, 14 Dec 2015 15:07:19 +0100
parents ec40768d77a6
children 89db2519ef18
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/StructuredData.java	Mon Dec 14 14:30:41 2015 +0100
+++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/StructuredData.java	Mon Dec 14 15:07:19 2015 +0100
@@ -81,8 +81,9 @@
         @Override
         public Object execute(VirtualFrame frame) {
             StructuredData data = (StructuredData) ForeignAccess.getReceiver(frame);
-            Number index = (Number) ForeignAccess.getArguments(frame).get(0);
-            return new StructuredDataEntry(data.buffer, data.schema, index.intValue());
+            Number index = TckLanguage.expectNumber(ForeignAccess.getArguments(frame).get(0));
+            int idx = TckLanguage.checkBounds(index.intValue(), data.schema.length());
+            return new StructuredDataEntry(data.buffer, data.schema, idx);
         }
 
     }