diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeSyntaxTree.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeSyntaxTree.java index 6a362e5ca4..7ced5d8eeb 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeSyntaxTree.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeSyntaxTree.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -173,6 +173,16 @@ public class PcodeSyntaxTree implements PcodeFactory { return vbank.locRange(addr); } + /** + * return all Varnodes bounded between two Addresses + * @param min -- Minimum Address of Varnodes + * @param max -- Maximum Address of Varnodes + * @return -- Iterator to Varnodes + */ + public Iterator getVarnodes(Address min, Address max) { + return vbank.locRange(min, max); + } + /** * return all Varnodes of a given size that start at a given Address * @param sz -- Size of Varnodes diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/VarnodeBank.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/VarnodeBank.java index de0d875c8a..de34b7e1fd 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/VarnodeBank.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/VarnodeBank.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -210,7 +210,7 @@ public class VarnodeBank { } public Iterator locRange(AddressSpace spaceid) { - VarnodeAST searchvn1 = new VarnodeAST(spaceid.getAddress(0),0,0); + VarnodeAST searchvn1 = new VarnodeAST(spaceid.getMinAddress(),0,0); searchvn1.setInput(true); VarnodeAST searchvn2 = new VarnodeAST(spaceid.getMaxAddress(), Integer.MAX_VALUE, 0); return locTree.subSet(searchvn1, searchvn2).iterator(); @@ -223,6 +223,13 @@ public class VarnodeBank { searchvn2.setInput(true); return locTree.subSet(searchvn1,searchvn2).iterator(); } + + public Iterator locRange(Address min, Address max) { + VarnodeAST searchvn1 = new VarnodeAST(min,0,0); + searchvn1.setInput(true); + VarnodeAST searchvn2 = new VarnodeAST(max, Integer.MAX_VALUE,0); + return locTree.subSet(searchvn1,searchvn2).iterator(); + } public Iterator locRange(int sz,Address addr) { VarnodeAST searchvn1 = new VarnodeAST(addr,sz,0);