pdb_class *try_find_by_name(ea_t ea, char **name, bool *free_name, bool is_deref_name = true) { pdb_class *res = NULL; char buf[256]; *free_name = false; char *t_name = NULL; if ( is_deref_name ) t_name = get_true_name(ea, get_long(ea), buf, 255); else t_name = get_true_name(ea, ea, buf, 255); if ( t_name ) { *name = get_parent_class(t_name); if ( *name ) { res = p_pool->find_class(*name); if ( !res ) qfree(*name); else *free_name = true; return res; } } return NULL; }
static void extension_subclass_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { g_debug ("Getting '%s:%s'", G_OBJECT_TYPE_NAME (object), g_param_spec_get_name (pspec)); G_OBJECT_CLASS (get_parent_class (object))->get_property (object, prop_id, value, pspec); }
bool ClassDB::is_parent_class(const StringName &p_class, const StringName &p_inherits) { OBJTYPE_RLOCK; StringName inherits = p_class; while (inherits.operator String().length()) { if (inherits == p_inherits) return true; inherits = get_parent_class(inherits); } return false; }
static void extension_subclass_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { PeasExtensionWrapper *exten = PEAS_EXTENSION_WRAPPER (object); /* This will have already been set on the real instance */ if ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) != 0) return; /* Setting will fail if we are not constructed yet */ if ((pspec->flags & G_PARAM_CONSTRUCT) != 0 && !exten->constructed) return; g_debug ("Setting '%s:%s'", G_OBJECT_TYPE_NAME (object), g_param_spec_get_name (pspec)); G_OBJECT_CLASS (get_parent_class (object))->set_property (object, prop_id, value, pspec); }