Mercurial > hg > truffle
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 { |