diff options
author | Martin Willi <martin@revosec.ch> | 2011-04-29 13:49:24 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-05-16 15:22:21 +0200 |
commit | c238e8ea86ee540a988bd96bfa52269c65aae92d (patch) | |
tree | 9e21f557b1cbda428c3ed4fca1c8e795a983b2af /src/libstrongswan/utils/backtrace.c | |
parent | 79edee7422e1707a04a6bc06e6aebb26df1902ed (diff) | |
download | strongswan-c238e8ea86ee540a988bd96bfa52269c65aae92d.tar.bz2 strongswan-c238e8ea86ee540a988bd96bfa52269c65aae92d.tar.xz |
Added an equals function to backtrace_t
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, }; |