mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
qom: allow turning cast debugging off
Cast debugging can have a substantial cost (20% or more). Instead of adding special-cased "fast casts" in the hot paths, we can just disable it in releases. The tracing facilities we just added make it easier to analyze those problems that cast debugging would reveal. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1368188203-3407-7-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
fa131d94a5
commit
3556c233d9
3 changed files with 26 additions and 9 deletions
|
@ -615,8 +615,9 @@ Object *object_dynamic_cast(Object *obj, const char *typename);
|
|||
*
|
||||
* See object_dynamic_cast() for a description of the parameters of this
|
||||
* function. The only difference in behavior is that this function asserts
|
||||
* instead of returning #NULL on failure. This function is not meant to be
|
||||
* called directly, but only through the wrapper macro OBJECT_CHECK.
|
||||
* instead of returning #NULL on failure if QOM cast debugging is enabled.
|
||||
* This function is not meant to be called directly, but only through
|
||||
* the wrapper macro OBJECT_CHECK.
|
||||
*/
|
||||
Object *object_dynamic_cast_assert(Object *obj, const char *typename,
|
||||
const char *file, int line, const char *func);
|
||||
|
@ -666,9 +667,9 @@ Type type_register(const TypeInfo *info);
|
|||
*
|
||||
* See object_class_dynamic_cast() for a description of the parameters
|
||||
* of this function. The only difference in behavior is that this function
|
||||
* asserts instead of returning #NULL on failure. This function is not
|
||||
* meant to be called directly, but only through the wrapper macros
|
||||
* OBJECT_CLASS_CHECK and INTERFACE_CHECK.
|
||||
* asserts instead of returning #NULL on failure if QOM cast debugging is
|
||||
* enabled. This function is not meant to be called directly, but only through
|
||||
* the wrapper macros OBJECT_CLASS_CHECK and INTERFACE_CHECK.
|
||||
*/
|
||||
ObjectClass *object_class_dynamic_cast_assert(ObjectClass *klass,
|
||||
const char *typename,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue