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 <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Luiz Capitulino 2009-10-07 13:41:47 -03:00 committed by Anthony Liguori
parent c62c4551b8
commit d559ba1af2
1 changed files with 3 additions and 4 deletions

View File

@ -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);