示例#1
0
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);
}
示例#3
0
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);
}