From: Luiz Capitulino Date: Wed, 7 Oct 2009 16:41:47 +0000 (-0300) Subject: QObject: Accept NULL X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~10177 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d559ba1af286bba5974ca3ee7eb27f942ca55f52;p=sdk%2Femulator%2Fqemu.git QObject: Accept NULL It is convenient that QDECREF() and QINCREF() accept the QObject parameter to be NULL, so that we don't duplicate 'if' tests in the callers. Patchworks-ID: 35332 Signed-off-by: Luiz Capitulino Signed-off-by: Anthony Liguori --- diff --git a/qobject.h b/qobject.h index 39b8649..dcc8c63 100644 --- a/qobject.h +++ b/qobject.h @@ -63,12 +63,10 @@ typedef struct QObject { /* High-level interface for qobject_incref() */ #define QINCREF(obj) \ - assert(obj != NULL); \ qobject_incref(QOBJECT(obj)) /* High-level interface for qobject_decref() */ #define QDECREF(obj) \ - assert(obj != NULL); \ qobject_decref(QOBJECT(obj)) /* Initialize an object to default values */ @@ -81,7 +79,8 @@ typedef struct QObject { */ static inline void qobject_incref(QObject *obj) { - obj->refcnt++; + if (obj) + obj->refcnt++; } /** @@ -90,7 +89,7 @@ static inline void qobject_incref(QObject *obj) */ static inline void qobject_decref(QObject *obj) { - if (--obj->refcnt == 0) { + if (obj && --obj->refcnt == 0) { assert(obj->type != NULL); assert(obj->type->destroy != NULL); obj->type->destroy(obj);