xkbcomp: Use `steal` for better memory handling
parent
20c6fa62a7
commit
20329baf4d
|
@ -228,6 +228,7 @@ libxkbcommon_sources = [
|
|||
'src/text.h',
|
||||
'src/utf8.c',
|
||||
'src/utf8.h',
|
||||
'src/util-mem.h',
|
||||
'src/utils.c',
|
||||
'src/utils.h',
|
||||
]
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
#include "action.h"
|
||||
#include "vmod.h"
|
||||
#include "include.h"
|
||||
#include "util-mem.h"
|
||||
|
||||
enum si_field {
|
||||
SI_FIELD_VIRTUAL_MOD = (1 << 0),
|
||||
|
@ -393,8 +394,7 @@ MergeIncludedCompatMaps(CompatInfo *into, CompatInfo *from,
|
|||
into->mods = from->mods;
|
||||
|
||||
if (into->name == NULL) {
|
||||
into->name = from->name;
|
||||
from->name = NULL;
|
||||
into->name = steal(&from->name);
|
||||
}
|
||||
|
||||
if (darray_empty(into->interps)) {
|
||||
|
@ -440,8 +440,7 @@ HandleIncludeCompatMap(CompatInfo *info, IncludeStmt *include)
|
|||
|
||||
InitCompatInfo(&included, info->ctx, 0 /* unused */,
|
||||
info->actions, &info->mods);
|
||||
included.name = include->stmt;
|
||||
include->stmt = NULL;
|
||||
included.name = steal(&include->stmt);
|
||||
|
||||
for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) {
|
||||
CompatInfo next_incl;
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "text.h"
|
||||
#include "expr.h"
|
||||
#include "include.h"
|
||||
#include "util-mem.h"
|
||||
|
||||
typedef struct {
|
||||
enum merge_mode merge;
|
||||
|
@ -268,8 +269,7 @@ MergeIncludedKeycodes(KeyNamesInfo *into, KeyNamesInfo *from,
|
|||
}
|
||||
|
||||
if (into->name == NULL) {
|
||||
into->name = from->name;
|
||||
from->name = NULL;
|
||||
into->name = steal(&from->name);
|
||||
}
|
||||
|
||||
/* Merge key names. */
|
||||
|
@ -348,8 +348,7 @@ HandleIncludeKeycodes(KeyNamesInfo *info, IncludeStmt *include)
|
|||
}
|
||||
|
||||
InitKeyNamesInfo(&included, info->ctx, 0 /* unused */);
|
||||
included.name = include->stmt;
|
||||
include->stmt = NULL;
|
||||
included.name = steal(&include->stmt);
|
||||
|
||||
for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) {
|
||||
KeyNamesInfo next_incl;
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
#include "vmod.h"
|
||||
#include "include.h"
|
||||
#include "keysym.h"
|
||||
#include "util-mem.h"
|
||||
|
||||
|
||||
enum key_repeat {
|
||||
|
@ -518,8 +519,7 @@ MergeIncludedSymbols(SymbolsInfo *into, SymbolsInfo *from,
|
|||
into->mods = from->mods;
|
||||
|
||||
if (into->name == NULL) {
|
||||
into->name = from->name;
|
||||
from->name = NULL;
|
||||
into->name = steal(&from->name);
|
||||
}
|
||||
|
||||
group_names_in_both = MIN(darray_size(into->group_names),
|
||||
|
@ -579,8 +579,7 @@ HandleIncludeSymbols(SymbolsInfo *info, IncludeStmt *include)
|
|||
|
||||
InitSymbolsInfo(&included, info->keymap, 0 /* unused */,
|
||||
info->actions, &info->mods);
|
||||
included.name = include->stmt;
|
||||
include->stmt = NULL;
|
||||
included.name = steal(&include->stmt);
|
||||
|
||||
for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) {
|
||||
SymbolsInfo next_incl;
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "vmod.h"
|
||||
#include "expr.h"
|
||||
#include "include.h"
|
||||
#include "util-mem.h"
|
||||
|
||||
enum type_field {
|
||||
TYPE_FIELD_MASK = (1 << 0),
|
||||
|
@ -192,8 +193,7 @@ MergeIncludedKeyTypes(KeyTypesInfo *into, KeyTypesInfo *from,
|
|||
into->mods = from->mods;
|
||||
|
||||
if (into->name == NULL) {
|
||||
into->name = from->name;
|
||||
from->name = NULL;
|
||||
into->name = steal(&from->name);
|
||||
}
|
||||
|
||||
if (darray_empty(into->types)) {
|
||||
|
@ -228,8 +228,7 @@ HandleIncludeKeyTypes(KeyTypesInfo *info, IncludeStmt *include)
|
|||
}
|
||||
|
||||
InitKeyTypesInfo(&included, info->ctx, 0 /* unused */, &info->mods);
|
||||
included.name = include->stmt;
|
||||
include->stmt = NULL;
|
||||
included.name = steal(&include->stmt);
|
||||
|
||||
for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) {
|
||||
KeyTypesInfo next_incl;
|
||||
|
|
Loading…
Reference in New Issue