Lines Matching full:ti

92 static void type_table_add(TypeImpl *ti)  in type_table_add()  argument
95 g_hash_table_insert(type_table_get(), (void *)ti->name, ti); in type_table_add()
105 TypeImpl *ti = g_malloc0(sizeof(*ti)); in type_new() local
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()
133 ti->interfaces[i].typename = g_strdup(info->interfaces[i].type); in type_new()
135 ti->num_interfaces = i; in type_new()
137 return ti; in type_new()
165 TypeImpl *ti; in type_register_internal() local
172 ti = type_new(info); in type_register_internal()
174 type_table_add(ti); in type_register_internal()
175 return ti; in type_register_internal()
243 static size_t type_class_get_size(TypeImpl *ti) in type_class_get_size() argument
245 if (ti->class_size) { in type_class_get_size()
246 return ti->class_size; in type_class_get_size()
249 if (type_has_parent(ti)) { in type_class_get_size()
250 return type_class_get_size(type_get_parent(ti)); in type_class_get_size()
256 static size_t type_object_get_size(TypeImpl *ti) in type_object_get_size() argument
258 if (ti->instance_size) { in type_object_get_size()
259 return ti->instance_size; in type_object_get_size()
262 if (type_has_parent(ti)) { in type_object_get_size()
263 return type_object_get_size(type_get_parent(ti)); in type_object_get_size()
269 static size_t type_object_get_align(TypeImpl *ti) in type_object_get_align() argument
271 if (ti->instance_align) { in type_object_get_align()
272 return ti->instance_align; in type_object_get_align()
275 if (type_has_parent(ti)) { in type_object_get_align()
276 return type_object_get_align(type_get_parent(ti)); in type_object_get_align()
298 static void type_initialize(TypeImpl *ti);
300 static void type_initialize_interface(TypeImpl *ti, TypeImpl *interface_type, in type_initialize_interface() argument
308 info.name = g_strdup_printf("%s::%s", ti->name, interface_type->name); in type_initialize_interface()
319 ti->class->interfaces = g_slist_append(ti->class->interfaces, new_iface); in type_initialize_interface()
336 static void type_initialize(TypeImpl *ti) in type_initialize() argument
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()
353 if (type_is_ancestor(ti, type_interface)) { 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()
363 parent = type_get_parent(ti); 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()
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()
400 type_initialize_interface(ti, t, t); 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()
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()
421 static void object_init_with_type(Object *obj, TypeImpl *ti) in object_init_with_type() argument
423 if (type_has_parent(ti)) { in object_init_with_type()
424 object_init_with_type(obj, type_get_parent(ti)); in object_init_with_type()
427 if (ti->instance_init) { in object_init_with_type()
428 ti->instance_init(obj); in object_init_with_type()
432 static void object_post_init_with_type(Object *obj, TypeImpl *ti) in object_post_init_with_type() argument
434 if (type_has_parent(ti)) { in object_post_init_with_type()
435 object_post_init_with_type(obj, type_get_parent(ti)); in object_post_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()
726 TypeImpl *ti = obj->class->type; in object_finalize() local
729 object_deinit(obj, ti); in object_finalize()
787 TypeImpl *ti = type_get_or_load_by_name(typename, &error_fatal); in object_new() local
789 return object_new_with_type(ti); in object_new()