From 5a6145c5ea3a1df1e666224962dc3ba685327a12 Mon Sep 17 00:00:00 2001 From: Fabrice Desclaux Date: Wed, 1 Apr 2015 15:10:35 +0200 Subject: interval: add empty property --- miasm2/core/interval.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'miasm2/core/interval.py') diff --git a/miasm2/core/interval.py b/miasm2/core/interval.py index d76cbd15..1f6eb739 100644 --- a/miasm2/core/interval.py +++ b/miasm2/core/interval.py @@ -215,6 +215,12 @@ class interval(object): return None, None return self.intervals[0][0], self.intervals[-1][1] + + @property + def empty(self): + """Return True iff the interval is empty""" + return not self.intervals + def show(self, img_x=1350, img_y=20, dry_run=False): """ show image representing the interval -- cgit 1.4.1 From 945f985aba4d957241899e56c26211a88977eca0 Mon Sep 17 00:00:00 2001 From: Fabrice Desclaux Date: Thu, 2 Apr 2015 10:24:17 +0200 Subject: Interval: fix contains; updt reg tests --- miasm2/core/interval.py | 20 ++++++++++---------- test/core/interval.py | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) (limited to 'miasm2/core/interval.py') diff --git a/miasm2/core/interval.py b/miasm2/core/interval.py index 1f6eb739..66445674 100644 --- a/miasm2/core/interval.py +++ b/miasm2/core/interval.py @@ -100,20 +100,20 @@ class interval(object): o = "[]" return o - def __contains__(self, i): - if isinstance(i, interval): - for x in self.intervals: - is_out = True - for y in i.intervals: - if cmp_interval(x, y) in [INT_EQ, INT_B_IN_A]: - is_out = False + def __contains__(self, other): + if isinstance(other, interval): + for intervalB in other.intervals: + is_in = False + for intervalA in self.intervals: + if cmp_interval(intervalA, intervalB) in [INT_EQ, INT_B_IN_A]: + is_in = True break - if is_out: + if not is_in: return False return True else: - for x in self.intervals: - if x[0] <= i <= x[1]: + for intervalA in self.intervals: + if intervalA[0] <= other <= intervalA[1]: return True return False diff --git a/test/core/interval.py b/test/core/interval.py index 34537d25..4572ac50 100644 --- a/test/core/interval.py +++ b/test/core/interval.py @@ -49,6 +49,7 @@ assert((i2 in i3) is False) assert((i3 in i2)) assert((i2 in i3) is False) +assert((i3 in i14)) assert(interval.cannon_list(i1.intervals) == i1.intervals) -- cgit 1.4.1