comparison 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
comparison
equal deleted inserted replaced
22498:ec40768d77a6 22499:9bba3a7b34be
79 } 79 }
80 80
81 @Override 81 @Override
82 public Object execute(VirtualFrame frame) { 82 public Object execute(VirtualFrame frame) {
83 StructuredData data = (StructuredData) ForeignAccess.getReceiver(frame); 83 StructuredData data = (StructuredData) ForeignAccess.getReceiver(frame);
84 Number index = (Number) ForeignAccess.getArguments(frame).get(0); 84 Number index = TckLanguage.expectNumber(ForeignAccess.getArguments(frame).get(0));
85 return new StructuredDataEntry(data.buffer, data.schema, index.intValue()); 85 int idx = TckLanguage.checkBounds(index.intValue(), data.schema.length());
86 return new StructuredDataEntry(data.buffer, data.schema, idx);
86 } 87 }
87 88
88 } 89 }
89 90
90 private static class StructuredDataSizeNode extends RootNode { 91 private static class StructuredDataSizeNode extends RootNode {