Lines Matching +full:bool +full:- +full:property
10 * See the COPYING file in the top-level directory.
14 #include "hw/qdev-core.h"
21 #include "qapi/string-input-visitor.h"
22 #include "qapi/string-output-visitor.h"
23 #include "qapi/qobject-input-visitor.h"
24 #include "qapi/forward-visitor.h"
25 #include "qapi/qapi-builtin-visit.h"
31 #include "qom/qom-qobject.h"
36 #include "qemu/error-report.h"
66 bool abstract;
90 static bool enumerating_types;
95 g_hash_table_insert(type_table_get(), (void *)ti->name, ti); in type_table_add()
108 g_assert(info->name != NULL); in type_new()
110 if (type_table_lookup(info->name) != NULL) { in type_new()
111 fprintf(stderr, "Registering `%s' which already exists\n", info->name); in type_new()
115 ti->name = g_strdup(info->name); in type_new()
116 ti->parent = g_strdup(info->parent); in type_new()
118 ti->class_size = info->class_size; in type_new()
119 ti->instance_size = info->instance_size; in type_new()
120 ti->instance_align = info->instance_align; in type_new()
122 ti->class_init = info->class_init; in type_new()
123 ti->class_base_init = info->class_base_init; in type_new()
124 ti->class_data = info->class_data; in type_new()
126 ti->instance_init = info->instance_init; in type_new()
127 ti->instance_post_init = info->instance_post_init; in type_new()
128 ti->instance_finalize = info->instance_finalize; in type_new()
130 ti->abstract = info->abstract; in type_new()
132 for (i = 0; info->interfaces && info->interfaces[i].type; i++) { in type_new()
133 ti->interfaces[i].typename = g_strdup(info->interfaces[i].type); in type_new()
135 ti->num_interfaces = i; in type_new()
140 static bool type_name_is_valid(const char *name) in type_name_is_valid()
148 * Ideally, the name should start with a letter - however, we've got in type_name_is_valid()
158 "0123456789-_."); in type_name_is_valid()
167 if (!type_name_is_valid(info->name)) { in type_register_internal()
168 fprintf(stderr, "Registering '%s' with illegal type name\n", info->name); in type_register_internal()
180 assert(info->parent); in type_register_static()
226 if (!type->parent_type && type->parent) { in type_get_parent()
227 type->parent_type = type_get_by_name_noload(type->parent); in type_get_parent()
228 if (!type->parent_type) { in type_get_parent()
230 type->name, type->parent); in type_get_parent()
235 return type->parent_type; in type_get_parent()
238 static bool type_has_parent(TypeImpl *type) in type_has_parent()
240 return (type->parent != NULL); in type_has_parent()
245 if (ti->class_size) { in type_class_get_size()
246 return ti->class_size; in type_class_get_size()
258 if (ti->instance_size) { in type_object_get_size()
259 return ti->instance_size; in type_object_get_size()
271 if (ti->instance_align) { in type_object_get_align()
272 return ti->instance_align; in type_object_get_align()
282 static bool type_is_ancestor(TypeImpl *type, TypeImpl *target_type) in type_is_ancestor()
307 info.parent = parent_type->name; in type_initialize_interface()
308 info.name = g_strdup_printf("%s::%s", ti->name, interface_type->name); in type_initialize_interface()
312 iface_impl->parent_type = parent_type; in type_initialize_interface()
316 new_iface = (InterfaceClass *)iface_impl->class; in type_initialize_interface()
317 new_iface->interface_type = interface_type; in type_initialize_interface()
319 ti->class->interfaces = g_slist_append(ti->class->interfaces, new_iface); in type_initialize_interface()
326 if (prop->defval) { in object_property_free()
327 qobject_unref(prop->defval); in object_property_free()
328 prop->defval = NULL; in object_property_free()
330 g_free(prop->name); in object_property_free()
331 g_free(prop->type); in object_property_free()
332 g_free(prop->description); in object_property_free()
340 if (ti->class) { in type_initialize()
344 ti->class_size = type_class_get_size(ti); in type_initialize()
345 ti->instance_size = type_object_get_size(ti); in type_initialize()
346 ti->instance_align = type_object_get_align(ti); in type_initialize()
350 if (ti->instance_size == 0) { in type_initialize()
351 ti->abstract = true; in type_initialize()
354 assert(ti->instance_size == 0); in type_initialize()
355 assert(ti->abstract); in type_initialize()
356 assert(!ti->instance_init); in type_initialize()
357 assert(!ti->instance_post_init); in type_initialize()
358 assert(!ti->instance_finalize); in type_initialize()
359 assert(!ti->num_interfaces); in type_initialize()
361 ti->class = g_malloc0(ti->class_size); in type_initialize()
369 g_assert(parent->class_size <= ti->class_size); in type_initialize()
370 g_assert(parent->instance_size <= ti->instance_size); in type_initialize()
371 memcpy(ti->class, parent->class, parent->class_size); in type_initialize()
372 ti->class->interfaces = NULL; in type_initialize()
374 for (e = parent->class->interfaces; e; e = e->next) { in type_initialize()
375 InterfaceClass *iface = e->data; in type_initialize()
378 type_initialize_interface(ti, iface->interface_type, klass->type); in type_initialize()
381 for (i = 0; i < ti->num_interfaces; i++) { in type_initialize()
382 TypeImpl *t = type_get_by_name_noload(ti->interfaces[i].typename); in type_initialize()
385 ti->interfaces[i].typename, parent->name); in type_initialize()
388 for (e = ti->class->interfaces; e; e = e->next) { in type_initialize()
389 TypeImpl *target_type = OBJECT_CLASS(e->data)->type; in type_initialize()
404 ti->class->properties = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, in type_initialize()
407 ti->class->type = ti; in type_initialize()
410 if (parent->class_base_init) { in type_initialize()
411 parent->class_base_init(ti->class, ti->class_data); in type_initialize()
416 if (ti->class_init) { in type_initialize()
417 ti->class_init(ti->class, ti->class_data); in type_initialize()
427 if (ti->instance_init) { in object_init_with_type()
428 ti->instance_init(obj); in object_init_with_type()
438 if (ti->instance_post_init) { in object_post_init_with_type()
439 ti->instance_post_init(obj); in object_post_init_with_type()
443 bool object_apply_global_props(Object *obj, const GPtrArray *props, in object_apply_global_props()
452 for (i = 0; i < props->len; i++) { in object_apply_global_props()
456 if (object_dynamic_cast(obj, p->driver) == NULL) { in object_apply_global_props()
459 if (p->optional && !object_property_find(obj, p->property)) { in object_apply_global_props()
462 p->used = true; in object_apply_global_props()
463 if (!object_property_parse(obj, p->property, p->value, &err)) { in object_apply_global_props()
465 p->driver, p->property, p->value); in object_apply_global_props()
484 * Global property defaults
485 * Slot 0: accelerator's global property defaults
486 * Slot 1: machine's global property defaults
494 * Retrieve @GPtrArray for global property defined with options
495 * other than "-global". These are generally used for syntactic
499 const char *value, bool optional) in object_register_sugar_prop()
506 g->driver = g_strdup(driver); in object_register_sugar_prop()
507 g->property = g_strdup(prop); in object_register_sugar_prop()
508 g->value = g_strdup(value); in object_register_sugar_prop()
509 g->optional = optional; in object_register_sugar_prop()
514 * Set machine's global property defaults to @compat_props.
524 * Set accelerator's global property defaults to @compat_props.
550 if (prop->init) { in object_class_property_init_all()
551 prop->init(obj, prop); in object_class_property_init_all()
560 g_assert(type->instance_size >= sizeof(Object)); in object_initialize_with_type()
561 g_assert(type->abstract == false); in object_initialize_with_type()
562 g_assert(size >= type->instance_size); in object_initialize_with_type()
564 memset(obj, 0, type->instance_size); in object_initialize_with_type()
565 obj->class = type->class; in object_initialize_with_type()
568 obj->properties = g_hash_table_new_full(g_str_hash, g_str_equal, in object_initialize_with_type()
581 bool object_initialize_child_with_props(Object *parentobj, in object_initialize_child_with_props()
588 bool ok; in object_initialize_child_with_props()
598 bool object_initialize_child_with_propsv(Object *parentobj, in object_initialize_child_with_propsv()
604 bool ok = false; in object_initialize_child_with_propsv()
649 static inline bool object_property_is_child(ObjectProperty *prop) in object_property_is_child()
651 return strstart(prop->type, "child<", NULL); in object_property_is_child()
659 bool released; in object_property_del_all()
666 if (prop->release) { in object_property_del_all()
667 prop->release(obj, prop->name, prop->opaque); in object_property_del_all()
675 g_hash_table_unref(obj->properties); in object_property_del_all()
684 g_hash_table_iter_init(&iter, obj->properties); in object_property_del_child()
687 if (object_property_is_child(prop) && prop->opaque == child) { in object_property_del_child()
688 if (prop->release) { in object_property_del_child()
689 prop->release(obj, prop->name, prop->opaque); in object_property_del_child()
690 prop->release = NULL; in object_property_del_child()
695 g_hash_table_iter_init(&iter, obj->properties); in object_property_del_child()
698 if (object_property_is_child(prop) && prop->opaque == child) { in object_property_del_child()
707 if (obj->parent) { in object_unparent()
708 object_property_del_child(obj->parent, obj); in object_unparent()
714 if (type->instance_finalize) { in object_deinit()
715 type->instance_finalize(obj); in object_deinit()
726 TypeImpl *ti = obj->class->type; in object_finalize()
731 g_assert(obj->ref == 0); in object_finalize()
732 g_assert(obj->parent == NULL); in object_finalize()
733 if (obj->free) { in object_finalize()
734 obj->free(obj); in object_finalize()
759 size = type->instance_size; in object_new_with_type()
760 align = type->instance_align; in object_new_with_type()
775 obj->free = obj_free; in object_new_with_type()
782 return object_new_with_type(klass->type); in object_new_with_class()
830 obj = object_new_with_type(klass->type); in object_new_with_propv()
859 bool object_set_props(Object *obj, in object_set_props()
864 bool ret; in object_set_props()
874 bool object_set_propv(Object *obj, in object_set_propv()
907 trace_object_dynamic_cast_assert(obj ? obj->class->type->name : "(null)", in object_dynamic_cast_assert()
915 if (qatomic_read(&obj->class->object_cast_cache[i]) == typename) { in object_dynamic_cast_assert()
932 qatomic_set(&obj->class->object_cast_cache[i - 1], in object_dynamic_cast_assert()
933 qatomic_read(&obj->class->object_cast_cache[i])); in object_dynamic_cast_assert()
935 qatomic_set(&obj->class->object_cast_cache[i - 1], typename); in object_dynamic_cast_assert()
955 type = class->type; in object_class_dynamic_cast()
956 if (type->name == typename) { in object_class_dynamic_cast()
966 if (type->class->interfaces && in object_class_dynamic_cast()
971 for (i = class->interfaces; i; i = i->next) { in object_class_dynamic_cast()
972 ObjectClass *target_class = i->data; in object_class_dynamic_cast()
974 if (type_is_ancestor(target_class->type, target_type)) { in object_class_dynamic_cast()
998 trace_object_class_dynamic_cast_assert(class ? class->type->name : "(null)", in object_class_dynamic_cast_assert()
1005 if (qatomic_read(&class->class_cast_cache[i]) == typename) { in object_class_dynamic_cast_assert()
1011 if (!class || !class->interfaces) { in object_class_dynamic_cast_assert()
1026 qatomic_set(&class->class_cast_cache[i - 1], in object_class_dynamic_cast_assert()
1027 qatomic_read(&class->class_cast_cache[i])); in object_class_dynamic_cast_assert()
1029 qatomic_set(&class->class_cast_cache[i - 1], typename); in object_class_dynamic_cast_assert()
1038 return obj->class->type->name; in object_get_typename()
1043 return obj->class; in object_get_class()
1046 bool object_class_is_abstract(ObjectClass *klass) in object_class_is_abstract()
1048 return klass->type->abstract; in object_class_is_abstract()
1053 return klass->type->name; in object_class_get_name()
1066 return type->class; in object_class_by_name()
1079 return type->class; in module_object_class_by_name()
1084 TypeImpl *type = type_get_parent(class->type); in object_class_get_parent()
1092 return type->class; in object_class_get_parent()
1099 bool include_abstract;
1111 k = type->class; in object_class_foreach_tramp()
1113 if (!data->include_abstract && type->abstract) { in object_class_foreach_tramp()
1117 if (data->implements_type && in object_class_foreach_tramp()
1118 !object_class_dynamic_cast(k, data->implements_type)) { in object_class_foreach_tramp()
1122 data->fn(k, data->opaque); in object_class_foreach_tramp()
1126 const char *implements_type, bool include_abstract, in object_class_foreach()
1138 void *opaque, bool recurse) in do_object_child_foreach()
1144 g_hash_table_iter_init(&iter, obj->properties); in do_object_child_foreach()
1147 Object *child = prop->opaque; in do_object_child_foreach()
1185 bool include_abstract) in object_class_get_list()
1201 bool include_abstract) in object_class_get_list_sorted()
1216 ref = qatomic_fetch_inc(&obj->ref); in object_ref()
1228 g_assert(obj->ref > 0); in object_unref()
1231 if (qatomic_fetch_dec(&obj->ref) == 1) { in object_unref()
1246 if (name_len >= 3 && !memcmp(name + name_len - 3, "[*]", 4)) { in object_property_try_add()
1251 name_no_array[name_len - 3] = '\0'; in object_property_try_add()
1268 error_setg(errp, "attempt to add duplicate property '%s' to object (type '%s')", in object_property_try_add()
1275 prop->name = g_strdup(name); in object_property_try_add()
1276 prop->type = g_strdup(type); in object_property_try_add()
1278 prop->get = get; in object_property_try_add()
1279 prop->set = set; in object_property_try_add()
1280 prop->release = release; in object_property_try_add()
1281 prop->opaque = opaque; in object_property_try_add()
1283 g_hash_table_insert(obj->properties, prop->name, prop); in object_property_try_add()
1313 prop->name = g_strdup(name); in object_class_property_add()
1314 prop->type = g_strdup(type); in object_class_property_add()
1316 prop->get = get; in object_class_property_add()
1317 prop->set = set; in object_class_property_add()
1318 prop->release = release; in object_class_property_add()
1319 prop->opaque = opaque; in object_class_property_add()
1321 g_hash_table_insert(klass->properties, prop->name, prop); in object_class_property_add()
1336 return g_hash_table_lookup(obj->properties, name); in object_property_find()
1344 error_setg(errp, "Property '%s.%s' not found", in object_property_find_err()
1353 g_hash_table_iter_init(&iter->iter, obj->properties); in object_property_iter_init()
1354 iter->nextclass = object_get_class(obj); in object_property_iter_init()
1360 while (!g_hash_table_iter_next(&iter->iter, &key, &val)) { in object_property_iter_next()
1361 if (!iter->nextclass) { in object_property_iter_next()
1364 g_hash_table_iter_init(&iter->iter, iter->nextclass->properties); in object_property_iter_next()
1365 iter->nextclass = object_class_get_parent(iter->nextclass); in object_property_iter_next()
1373 g_hash_table_iter_init(&iter->iter, klass->properties); in object_class_property_iter_init()
1374 iter->nextclass = object_class_get_parent(klass); in object_class_property_iter_init()
1390 return g_hash_table_lookup(klass->properties, name); in object_class_property_find()
1399 error_setg(errp, "Property '.%s' not found", name); in object_class_property_find_err()
1407 ObjectProperty *prop = g_hash_table_lookup(obj->properties, name); in object_property_del()
1409 if (prop->release) { in object_property_del()
1410 prop->release(obj, name, prop->opaque); in object_property_del()
1412 g_hash_table_remove(obj->properties, name); in object_property_del()
1415 bool object_property_get(Object *obj, const char *name, Visitor *v, in object_property_get()
1425 if (!prop->get) { in object_property_get()
1426 error_setg(errp, "Property '%s.%s' is not readable", in object_property_get()
1430 prop->get(obj, v, name, prop->opaque, &err); in object_property_get()
1435 bool object_property_set(Object *obj, const char *name, Visitor *v, in object_property_set()
1445 if (!prop->set) { in object_property_set()
1446 error_setg(errp, "Property '%s.%s' is not writable", in object_property_set()
1450 prop->set(obj, v, name, prop->opaque, errp); in object_property_set()
1454 bool object_property_set_str(Object *obj, const char *name, in object_property_set_str()
1458 bool ok = object_property_set_qobject(obj, name, QOBJECT(qstr), errp); in object_property_set_str()
1487 bool object_property_set_link(Object *obj, const char *name, in object_property_set_link()
1516 bool object_property_set_bool(Object *obj, const char *name, in object_property_set_bool()
1517 bool value, Error **errp) in object_property_set_bool()
1520 bool ok = object_property_set_qobject(obj, name, QOBJECT(qbool), errp); in object_property_set_bool()
1526 bool object_property_get_bool(Object *obj, const char *name, in object_property_get_bool()
1531 bool retval; in object_property_get_bool()
1549 bool object_property_set_int(Object *obj, const char *name, in object_property_set_int()
1553 bool ok = object_property_set_qobject(obj, name, QOBJECT(qnum), errp); in object_property_set_int()
1567 return -1; in object_property_get_int()
1574 retval = -1; in object_property_get_int()
1583 Visitor *v = qobject_input_visitor_new(prop->defval); in object_property_init_defval()
1585 assert(prop->set != NULL); in object_property_init_defval()
1586 prop->set(obj, v, prop->name, prop->opaque, &error_abort); in object_property_init_defval()
1593 assert(!prop->defval); in object_property_set_default()
1594 assert(!prop->init); in object_property_set_default()
1596 prop->defval = defval; in object_property_set_default()
1597 prop->init = object_property_init_defval; in object_property_set_default()
1600 void object_property_set_default_bool(ObjectProperty *prop, bool value) in object_property_set_default_bool()
1625 bool object_property_set_uint(Object *obj, const char *name, in object_property_set_uint()
1629 bool ok = object_property_set_qobject(obj, name, QOBJECT(qnum), errp); in object_property_set_uint()
1671 return -1; in object_property_get_enum()
1674 if (!g_str_equal(prop->type, typename)) { in object_property_get_enum()
1675 error_setg(errp, "Property %s on %s is not '%s' enum type", in object_property_get_enum()
1678 return -1; in object_property_get_enum()
1681 enumprop = prop->opaque; in object_property_get_enum()
1685 return -1; in object_property_get_enum()
1688 ret = qapi_enum_parse(enumprop->lookup, str, -1, errp); in object_property_get_enum()
1694 bool object_property_parse(Object *obj, const char *name, in object_property_parse()
1698 bool ok = object_property_set(obj, name, v, errp); in object_property_parse()
1704 char *object_property_print(Object *obj, const char *name, bool human, in object_property_print()
1729 return prop->type; in object_property_get_type()
1744 * Create all QEMU system containers. "machine" and its sub-containers in object_root_initialize()
1814 if (child->class->unparent) { in object_finalize_child_property()
1815 (child->class->unparent)(child); in object_finalize_child_property()
1817 child->parent = NULL; in object_finalize_child_property()
1828 assert(!child->parent); in object_property_try_add_child()
1838 op->resolve = object_resolve_child_property; in object_property_try_add_child()
1840 child->parent = obj; in object_property_try_add_child()
1870 if (lprop->flags & OBJ_PROP_LINK_DIRECT) { in object_link_get_targetp()
1871 return &lprop->target; in object_link_get_targetp()
1872 } else if (lprop->flags & OBJ_PROP_LINK_CLASS) { in object_link_get_targetp()
1873 return (void *)obj + lprop->offset; in object_link_get_targetp()
1875 return lprop->targetp; in object_link_get_targetp()
1900 * Lookup an object and ensure its type matches the link property type. This
1902 * link property is performed.
1911 bool ambiguous = false; in object_resolve_link()
1916 target_type = g_strndup(&type[5], strlen(type) - 6); in object_resolve_link()
1965 prop->check(obj, name, new_target, &local_err); in object_set_link_property()
1972 if (prop->flags & OBJ_PROP_LINK_STRONG) { in object_set_link_property()
1992 if ((prop->flags & OBJ_PROP_LINK_STRONG) && *targetp) { in object_release_link_property()
1995 if (!(prop->flags & OBJ_PROP_LINK_CLASS)) { in object_release_link_property()
2012 prop->target = ptr; in object_add_link_prop()
2014 prop->targetp = ptr; in object_add_link_prop()
2016 prop->check = check; in object_add_link_prop()
2017 prop->flags = flags; in object_add_link_prop()
2026 op->resolve = object_resolve_link_property; in object_add_link_prop()
2052 prop->offset = offset; in object_class_property_add_link()
2053 prop->check = check; in object_class_property_add_link()
2054 prop->flags = flags | OBJ_PROP_LINK_CLASS; in object_class_property_add_link()
2064 op->resolve = object_resolve_link_property; in object_class_property_add_link()
2084 if (obj->parent == NULL) { in object_get_canonical_path_component()
2088 g_hash_table_iter_init(&iter, obj->parent->properties); in object_get_canonical_path_component()
2094 if (prop->opaque == obj) { in object_get_canonical_path_component()
2095 return prop->name; in object_get_canonical_path_component()
2126 obj = obj->parent; in object_get_canonical_path()
2139 if (prop->resolve) { in object_resolve_path_component()
2140 return prop->resolve(parent, prop->opaque, part); in object_resolve_path_component()
2171 bool *ambiguous) in object_resolve_partial_path()
2179 g_hash_table_iter_init(&iter, parent->properties); in object_resolve_partial_path()
2187 found = object_resolve_partial_path(prop->opaque, parts, in object_resolve_partial_path()
2206 bool *ambiguous) in object_resolve_path_type()
2215 bool ambig = false; in object_resolve_path_type()
2233 Object *object_resolve_path(const char *path, bool *ambiguous) in object_resolve_path()
2251 bool ambig = false; in object_resolve_type_unambiguous()
2278 value = prop->get(obj, &err); in property_get_str()
2298 prop->set(obj, value, errp); in property_set_str()
2315 prop->get = get; in object_property_add_str()
2316 prop->set = set; in object_property_add_str()
2333 prop->get = get; in object_class_property_add_str()
2334 prop->set = set; in object_class_property_add_str()
2345 bool (*get)(Object *, Error **);
2346 void (*set)(Object *, bool, Error **);
2353 bool value; in property_get_bool()
2356 value = prop->get(obj, &err); in property_get_bool()
2369 bool value; in property_set_bool()
2375 prop->set(obj, value, errp); in property_set_bool()
2380 bool (*get)(Object *, Error **), in object_property_add_bool()
2381 void (*set)(Object *, bool, Error **)) in object_property_add_bool()
2385 prop->get = get; in object_property_add_bool()
2386 prop->set = set; in object_property_add_bool()
2388 return object_property_add(obj, name, "bool", in object_property_add_bool()
2397 bool (*get)(Object *, Error **), in object_class_property_add_bool()
2398 void (*set)(Object *, bool, Error **)) in object_class_property_add_bool()
2402 prop->get = get; in object_class_property_add_bool()
2403 prop->set = set; in object_class_property_add_bool()
2405 return object_class_property_add(klass, name, "bool", in object_class_property_add_bool()
2419 value = prop->get(obj, &err); in property_get_enum()
2425 visit_type_enum(v, name, &value, prop->lookup, errp); in property_get_enum()
2434 if (!visit_type_enum(v, name, &value, prop->lookup, errp)) { in property_set_enum()
2437 prop->set(obj, value, errp); in property_set_enum()
2449 prop->lookup = lookup; in object_property_add_enum()
2450 prop->get = get; in object_property_add_enum()
2451 prop->set = set; in object_property_add_enum()
2469 prop->lookup = lookup; in object_class_property_add_enum()
2470 prop->get = get; in object_class_property_add_enum()
2471 prop->set = set; in object_class_property_add_enum()
2491 prop->get(obj, &value, &err); in property_get_tm()
2529 prop->get = get; in object_property_add_tm()
2543 prop->get = get; in object_class_property_add_tm()
2804 Visitor *alias_v = visitor_forward_field(v, prop->target_name, name); in property_get_alias()
2806 object_property_get(prop->target_obj, prop->target_name, alias_v, errp); in property_get_alias()
2814 Visitor *alias_v = visitor_forward_field(v, prop->target_name, name); in property_set_alias()
2816 object_property_set(prop->target_obj, prop->target_name, alias_v, errp); in property_set_alias()
2825 return object_resolve_path_component(prop->target_obj, prop->target_name); in property_resolve_alias()
2832 g_free(prop->target_name); in property_release_alias()
2850 target_prop->type + strlen("child")); in object_property_add_alias()
2852 prop_type = g_strdup(target_prop->type); in object_property_add_alias()
2856 prop->target_obj = target_obj; in object_property_add_alias()
2857 prop->target_name = g_strdup(target_name); in object_property_add_alias()
2864 op->resolve = property_resolve_alias; in object_property_add_alias()
2865 if (target_prop->defval) { in object_property_add_alias()
2866 op->defval = qobject_ref(target_prop->defval); in object_property_add_alias()
2869 object_property_set_description(obj, op->name, in object_property_add_alias()
2870 target_prop->description); in object_property_add_alias()
2880 g_free(op->description); in object_property_set_description()
2881 op->description = g_strdup(description); in object_property_set_description()
2890 op = g_hash_table_lookup(klass->properties, name); in object_class_property_set_description()
2891 g_free(op->description); in object_class_property_set_description()
2892 op->description = g_strdup(description); in object_class_property_set_description()