[asterisk-commits] coreyfarrell: branch 12 r418396 - /branches/12/include/asterisk/astobj2.h
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jul 11 16:09:51 CDT 2014
Author: coreyfarrell
Date: Fri Jul 11 16:09:43 2014
New Revision: 418396
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=418396
Log:
astobj2: tweak ao2_replace to do nothing when it would be a NoOp
This change causes ao2_replace to do nothing when src == dst. This
avoids REF_DEBUG logging when we're not actually doing anything.
Review: https://reviewboard.asterisk.org/r/3743/
Modified:
branches/12/include/asterisk/astobj2.h
Modified: branches/12/include/asterisk/astobj2.h
URL: http://svnview.digium.com/svn/asterisk/branches/12/include/asterisk/astobj2.h?view=diff&rev=418396&r1=418395&r2=418396
==============================================================================
--- branches/12/include/asterisk/astobj2.h (original)
+++ branches/12/include/asterisk/astobj2.h Fri Jul 11 16:09:43 2014
@@ -561,13 +561,15 @@
{\
typeof(dst) *__dst_ ## __LINE__ = &dst; \
typeof(src) __src_ ## __LINE__ = src; \
- if (__src_ ## __LINE__) {\
- ao2_ref(__src_ ## __LINE__, +1); \
+ if (__src_ ## __LINE__ != *__dst_ ## __LINE__) { \
+ if (__src_ ## __LINE__) {\
+ ao2_ref(__src_ ## __LINE__, +1); \
+ } \
+ if (*__dst_ ## __LINE__) {\
+ ao2_ref(*__dst_ ## __LINE__, -1); \
+ } \
+ *__dst_ ## __LINE__ = __src_ ## __LINE__; \
} \
- if (*__dst_ ## __LINE__) {\
- ao2_ref(*__dst_ ## __LINE__, -1); \
- } \
- *__dst_ ## __LINE__ = __src_ ## __LINE__; \
}
/*! @} */
More information about the asterisk-commits
mailing list