mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-29 11:26:01 +01:00
Store links in slice
This commit is contained in:
parent
ba9ece2bd3
commit
d9c852e75e
1 changed files with 8 additions and 7 deletions
|
@ -24,19 +24,19 @@ zathura_link_t*
|
||||||
zathura_link_new(zathura_link_type_t type, zathura_rectangle_t position,
|
zathura_link_new(zathura_link_type_t type, zathura_rectangle_t position,
|
||||||
zathura_link_target_t target)
|
zathura_link_target_t target)
|
||||||
{
|
{
|
||||||
zathura_link_t* link = g_try_malloc0(sizeof(zathura_link_t));
|
zathura_link_t* link = g_slice_new(zathura_link_t);
|
||||||
if (link == NULL) {
|
if (link == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
link->type = type;
|
|
||||||
link->position = position;
|
link->position = position;
|
||||||
|
link->target = target;
|
||||||
|
link->type = type;
|
||||||
|
|
||||||
|
/* duplicate target.value if necessary */
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ZATHURA_LINK_NONE:
|
case ZATHURA_LINK_NONE:
|
||||||
case ZATHURA_LINK_GOTO_DEST:
|
case ZATHURA_LINK_GOTO_DEST:
|
||||||
link->target = target;
|
|
||||||
|
|
||||||
if (target.value != NULL) {
|
if (target.value != NULL) {
|
||||||
link->target.value = g_strdup(target.value);
|
link->target.value = g_strdup(target.value);
|
||||||
}
|
}
|
||||||
|
@ -45,15 +45,16 @@ zathura_link_new(zathura_link_type_t type, zathura_rectangle_t position,
|
||||||
case ZATHURA_LINK_URI:
|
case ZATHURA_LINK_URI:
|
||||||
case ZATHURA_LINK_LAUNCH:
|
case ZATHURA_LINK_LAUNCH:
|
||||||
case ZATHURA_LINK_NAMED:
|
case ZATHURA_LINK_NAMED:
|
||||||
|
/* target.value is required for these cases */
|
||||||
if (target.value == NULL) {
|
if (target.value == NULL) {
|
||||||
g_free(link);
|
g_slice_free(zathura_link_t, link);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
link->target.value = g_strdup(target.value);
|
link->target.value = g_strdup(target.value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
g_free(link);
|
g_slice_free(zathura_link_t, link);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +83,7 @@ zathura_link_free(zathura_link_t* link)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free(link);
|
g_slice_free(zathura_link_t, link);
|
||||||
}
|
}
|
||||||
|
|
||||||
zathura_link_type_t
|
zathura_link_type_t
|
||||||
|
|
Loading…
Reference in a new issue