diff options
Diffstat (limited to 'src/libstrongswan/utils/backtrace.c')
-rw-r--r-- | src/libstrongswan/utils/backtrace.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libstrongswan/utils/backtrace.c b/src/libstrongswan/utils/backtrace.c index 3f3707b5a..f69bd1538 100644 --- a/src/libstrongswan/utils/backtrace.c +++ b/src/libstrongswan/utils/backtrace.c @@ -152,6 +152,30 @@ METHOD(backtrace_t, contains_function, bool, return FALSE; } +METHOD(backtrace_t, equals, bool, + private_backtrace_t *this, backtrace_t *other_public) +{ + private_backtrace_t *other = (private_backtrace_t*)other_public; + int i; + + if (this == other) + { + return TRUE; + } + if (this->frame_count != other->frame_count) + { + return FALSE; + } + for (i = 0; i < this->frame_count; i++) + { + if (this->frames[i] != other->frames[i]) + { + return FALSE; + } + } + return TRUE; +} + METHOD(backtrace_t, destroy, void, private_backtrace_t *this) { @@ -178,6 +202,7 @@ backtrace_t *backtrace_create(int skip) this->public = (backtrace_t) { .log = _log_, .contains_function = _contains_function, + .equals = _equals, .destroy = _destroy, }; |