summaryrefslogtreecommitdiff
path: root/highlevelilinstruction.h
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2025-08-01 14:41:11 -0400
committerGlenn Smith <glenn@vector35.com>2025-08-01 21:37:40 -0400
commit1455831091552327502612013281528881111506 (patch)
tree39d38ce33b3f6e869048af4fcd76804907f65b1c /highlevelilinstruction.h
parent1681053397485739253763507272419110508907 (diff)
Make the IL iterators real iterators for std::find_if
Diffstat (limited to 'highlevelilinstruction.h')
-rw-r--r--highlevelilinstruction.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/highlevelilinstruction.h b/highlevelilinstruction.h
index 86a29423..2e10c485 100644
--- a/highlevelilinstruction.h
+++ b/highlevelilinstruction.h
@@ -181,6 +181,12 @@ namespace BinaryNinja
{
struct ListIterator
{
+ typedef std::forward_iterator_tag iterator_category;
+ typedef uint64_t value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef void pointer;
+ typedef value_type reference;
+
#ifdef BINARYNINJACORE_LIBRARY
HighLevelILFunction* function;
#else
@@ -219,6 +225,12 @@ namespace BinaryNinja
{
struct ListIterator
{
+ typedef std::forward_iterator_tag iterator_category;
+ typedef size_t value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef void pointer;
+ typedef value_type reference;
+
HighLevelILIntegerList::const_iterator pos;
bool operator==(const ListIterator& a) const { return pos == a.pos; }
bool operator!=(const ListIterator& a) const { return pos != a.pos; }
@@ -253,6 +265,12 @@ namespace BinaryNinja
{
struct ListIterator
{
+ typedef std::forward_iterator_tag iterator_category;
+ typedef HighLevelILInstruction value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef void pointer;
+ typedef value_type reference;
+
HighLevelILIntegerList::const_iterator pos;
bool ast;
size_t instructionIndex;
@@ -292,6 +310,12 @@ namespace BinaryNinja
{
struct ListIterator
{
+ typedef std::forward_iterator_tag iterator_category;
+ typedef SSAVariable value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef void pointer;
+ typedef value_type reference;
+
HighLevelILIntegerList::const_iterator pos;
bool operator==(const ListIterator& a) const { return pos == a.pos; }
bool operator!=(const ListIterator& a) const { return pos != a.pos; }
@@ -819,6 +843,12 @@ namespace BinaryNinja
{
struct ListIterator
{
+ typedef std::forward_iterator_tag iterator_category;
+ typedef HighLevelILOperand value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef void pointer;
+ typedef value_type reference;
+
const HighLevelILOperandList* owner;
_STD_VECTOR<HighLevelILOperandUsage>::const_iterator pos;
bool operator==(const ListIterator& a) const { return pos == a.pos; }