[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] qom: fix cast results caching
From: |
Sergey Fedorov |
Subject: |
[Qemu-devel] [PATCH] qom: fix cast results caching |
Date: |
Tue, 17 Dec 2013 13:17:59 +0400 |
A single cast cache is used for both an object casting and a class
casting. In case of interface presence a class cast result may be not
the same pointer as opposite to an object casting. So do not cache cast
results for an object casting in a presence of interfaces.
Signed-off-by: Sergey Fedorov <address@hidden>
---
qom/object.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qom/object.c b/qom/object.c
index fc19cf6..f7384de 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -473,7 +473,7 @@ Object *object_dynamic_cast_assert(Object *obj, const char
*typename,
assert(obj == inst);
- if (obj && obj == inst) {
+ if (obj && obj == inst && !obj->class->interfaces) {
for (i = 1; i < OBJECT_CLASS_CAST_CACHE; i++) {
obj->class->cast_cache[i - 1] = obj->class->cast_cache[i];
}
--
1.7.9.5
- [Qemu-devel] [PATCH] qom: fix cast results caching,
Sergey Fedorov <=