qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qom-next] qom: make object cast assert if NULL o


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH qom-next] qom: make object cast assert if NULL object is passed as argument
Date: Thu, 31 May 2012 10:11:10 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1

On 05/30/2012 07:05 PM, Igor Mitsyanko wrote:
On 05/30/2012 08:19 PM, Igor Mammedov wrote:
without assert it will crash at following point:
OBJECT_CHECK(type, obj, name) \
((type *)object_dynamic_cast_assert(OBJECT(obj), (name)))
=> object_dynamic_cast(obj, typename)
=> object_is_type(obj, target_type)
=> type_is_ancestor(obj->class->type, target_type);
^^^
so abort earlier and print nice message instead of SIGSEGV

Signed-off-by: Igor Mammedov<address@hidden>
---
qom/object.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/qom/object.c b/qom/object.c
index 00bb3b0..444e2fc 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -481,6 +481,8 @@ Object *object_dynamic_cast_assert(Object *obj, const char 
*typename)
{
Object *inst;

+ g_assert(obj != NULL);
+
inst = object_dynamic_cast(obj, typename);

if (!inst) {
Makes much sense, but maybe it should be done in OBJECT() cast? Assert when we 
do OBJECT(NULL).
sort grep shows that no one is casting NULLs to anything, what's the point?

--
-----
 Igor



reply via email to

[Prev in Thread] Current Thread [Next in Thread]