forked from enlightenment/efl
Eo: Moved the debug info functions to the base class code.
This commit is contained in:
parent
0ed15b04f8
commit
263e54d705
|
@ -1553,94 +1553,3 @@ eo_manual_free(Eo *obj)
|
||||||
_eo_free(obj);
|
_eo_free(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Eo_Dbg */
|
|
||||||
EAPI void
|
|
||||||
eo_dbg_info_free(Eo_Dbg_Info *info)
|
|
||||||
{
|
|
||||||
eina_value_flush(&(info->value));
|
|
||||||
free(info);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_eo_dbg_info_setup(const Eina_Value_Type *type, void *mem)
|
|
||||||
{
|
|
||||||
memset(mem, 0, type->value_size);
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_eo_dbg_info_flush(const Eina_Value_Type *type EINA_UNUSED, void *_mem)
|
|
||||||
{
|
|
||||||
Eo_Dbg_Info *mem = *(Eo_Dbg_Info **) _mem;
|
|
||||||
eina_stringshare_del(mem->name);
|
|
||||||
eina_value_flush(&(mem->value));
|
|
||||||
free(mem);
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_eo_dbg_info_copy(const Eina_Value_Type *type EINA_UNUSED, const void *_src, void *_dst)
|
|
||||||
{
|
|
||||||
const Eo_Dbg_Info **src = (const Eo_Dbg_Info **) _src;
|
|
||||||
Eo_Dbg_Info **dst = _dst;
|
|
||||||
*dst = calloc(1, sizeof(*dst));
|
|
||||||
(*dst)->name = eina_stringshare_ref((*src)->name);
|
|
||||||
eina_value_copy(&((*src)->value), &((*dst)->value));
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_eo_dbg_info_convert_to(const Eina_Value_Type *type EINA_UNUSED, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
|
|
||||||
{
|
|
||||||
/* FIXME: For the meanwhile, just use the inner type for the value. */
|
|
||||||
const Eo_Dbg_Info **src = (const Eo_Dbg_Info **) type_mem;
|
|
||||||
if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
|
|
||||||
convert == EINA_VALUE_TYPE_STRING)
|
|
||||||
{
|
|
||||||
Eina_Bool ret;
|
|
||||||
const char *other_mem;
|
|
||||||
char *inner_val = eina_value_to_string(&(*src)->value);
|
|
||||||
other_mem = inner_val;
|
|
||||||
ret = eina_value_type_pset(convert, convert_mem, &other_mem);
|
|
||||||
free(inner_val);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
eina_error_set(EINA_ERROR_VALUE_FAILED);
|
|
||||||
return EINA_FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_eo_dbg_info_pset(const Eina_Value_Type *type EINA_UNUSED, void *_mem, const void *_ptr)
|
|
||||||
{
|
|
||||||
Eo_Dbg_Info **mem = _mem;
|
|
||||||
if (*mem)
|
|
||||||
free(*mem);
|
|
||||||
*mem = (void *) _ptr;
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_eo_dbg_info_pget(const Eina_Value_Type *type EINA_UNUSED, const void *_mem, void *_ptr)
|
|
||||||
{
|
|
||||||
Eo_Dbg_Info **ptr = _ptr;
|
|
||||||
*ptr = (void *) _mem;
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const Eina_Value_Type _EO_DBG_INFO_TYPE = {
|
|
||||||
EINA_VALUE_TYPE_VERSION,
|
|
||||||
sizeof(Eo_Dbg_Info *),
|
|
||||||
"Eo_Dbg_Info_Ptr",
|
|
||||||
_eo_dbg_info_setup,
|
|
||||||
_eo_dbg_info_flush,
|
|
||||||
_eo_dbg_info_copy,
|
|
||||||
NULL,
|
|
||||||
_eo_dbg_info_convert_to,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
_eo_dbg_info_pset,
|
|
||||||
_eo_dbg_info_pget
|
|
||||||
};
|
|
||||||
|
|
||||||
EAPI const Eina_Value_Type *EO_DBG_INFO_TYPE = &_EO_DBG_INFO_TYPE;
|
|
||||||
|
|
|
@ -585,6 +585,98 @@ _ev_global_freeze_get(const Eo_Class *klass EINA_UNUSED, va_list *list)
|
||||||
*ret = event_freeze_count;
|
*ret = event_freeze_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Eo_Dbg */
|
||||||
|
EAPI void
|
||||||
|
eo_dbg_info_free(Eo_Dbg_Info *info)
|
||||||
|
{
|
||||||
|
eina_value_flush(&(info->value));
|
||||||
|
free(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_eo_dbg_info_setup(const Eina_Value_Type *type, void *mem)
|
||||||
|
{
|
||||||
|
memset(mem, 0, type->value_size);
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_eo_dbg_info_flush(const Eina_Value_Type *type EINA_UNUSED, void *_mem)
|
||||||
|
{
|
||||||
|
Eo_Dbg_Info *mem = *(Eo_Dbg_Info **) _mem;
|
||||||
|
eina_stringshare_del(mem->name);
|
||||||
|
eina_value_flush(&(mem->value));
|
||||||
|
free(mem);
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_eo_dbg_info_copy(const Eina_Value_Type *type EINA_UNUSED, const void *_src, void *_dst)
|
||||||
|
{
|
||||||
|
const Eo_Dbg_Info **src = (const Eo_Dbg_Info **) _src;
|
||||||
|
Eo_Dbg_Info **dst = _dst;
|
||||||
|
*dst = calloc(1, sizeof(*dst));
|
||||||
|
(*dst)->name = eina_stringshare_ref((*src)->name);
|
||||||
|
eina_value_copy(&((*src)->value), &((*dst)->value));
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_eo_dbg_info_convert_to(const Eina_Value_Type *type EINA_UNUSED, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem)
|
||||||
|
{
|
||||||
|
/* FIXME: For the meanwhile, just use the inner type for the value. */
|
||||||
|
const Eo_Dbg_Info **src = (const Eo_Dbg_Info **) type_mem;
|
||||||
|
if (convert == EINA_VALUE_TYPE_STRINGSHARE ||
|
||||||
|
convert == EINA_VALUE_TYPE_STRING)
|
||||||
|
{
|
||||||
|
Eina_Bool ret;
|
||||||
|
const char *other_mem;
|
||||||
|
char *inner_val = eina_value_to_string(&(*src)->value);
|
||||||
|
other_mem = inner_val;
|
||||||
|
ret = eina_value_type_pset(convert, convert_mem, &other_mem);
|
||||||
|
free(inner_val);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
eina_error_set(EINA_ERROR_VALUE_FAILED);
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_eo_dbg_info_pset(const Eina_Value_Type *type EINA_UNUSED, void *_mem, const void *_ptr)
|
||||||
|
{
|
||||||
|
Eo_Dbg_Info **mem = _mem;
|
||||||
|
if (*mem)
|
||||||
|
free(*mem);
|
||||||
|
*mem = (void *) _ptr;
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_eo_dbg_info_pget(const Eina_Value_Type *type EINA_UNUSED, const void *_mem, void *_ptr)
|
||||||
|
{
|
||||||
|
Eo_Dbg_Info **ptr = _ptr;
|
||||||
|
*ptr = (void *) _mem;
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const Eina_Value_Type _EO_DBG_INFO_TYPE = {
|
||||||
|
EINA_VALUE_TYPE_VERSION,
|
||||||
|
sizeof(Eo_Dbg_Info *),
|
||||||
|
"Eo_Dbg_Info_Ptr",
|
||||||
|
_eo_dbg_info_setup,
|
||||||
|
_eo_dbg_info_flush,
|
||||||
|
_eo_dbg_info_copy,
|
||||||
|
NULL,
|
||||||
|
_eo_dbg_info_convert_to,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
_eo_dbg_info_pset,
|
||||||
|
_eo_dbg_info_pget
|
||||||
|
};
|
||||||
|
|
||||||
|
EAPI const Eina_Value_Type *EO_DBG_INFO_TYPE = &_EO_DBG_INFO_TYPE;
|
||||||
|
|
||||||
|
|
||||||
/* EOF event callbacks */
|
/* EOF event callbacks */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue