chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
3b43629
)
conf-parser: minor optimization in config_parse_string()
author
Lennart Poettering
<lennart@poettering.net>
Mon, 3 Mar 2014 20:53:19 +0000
(21:53 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Mon, 3 Mar 2014 20:53:19 +0000
(21:53 +0100)
src/shared/conf-parser.c
patch
|
blob
|
history
diff --git
a/src/shared/conf-parser.c
b/src/shared/conf-parser.c
index 1ad2b4fcba85ae2f5a2db71346e41baef2eac2bc..86435d3bdebd3c87fa42b408a60878c9cce24212 100644
(file)
--- a/
src/shared/conf-parser.c
+++ b/
src/shared/conf-parser.c
@@
-565,57
+565,55
@@
int config_parse_bool(const char* unit,
return 0;
}
return 0;
}
-int config_parse_string(
const char *unit,
-
const char *filename
,
-
unsigned lin
e,
-
const char *section
,
-
unsigned section_line
,
-
const char *lvalu
e,
-
int ltyp
e,
-
const char *rvalu
e,
-
void *data
,
- void *userdata) {
-
- char **s = data;
- char *n;
+int config_parse_string(
+
const char *unit
,
+
const char *filenam
e,
+
unsigned line
,
+
const char *section
,
+
unsigned section_lin
e,
+
const char *lvalu
e,
+
int ltyp
e,
+
const char *rvalue
,
+ void *data,
+ void *userdata) {
+
+ char *
*s = data, *
n;
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
assert(filename);
assert(lvalue);
assert(rvalue);
assert(data);
- n = strdup(rvalue);
- if (!n)
- return log_oom();
-
- if (!utf8_is_valid(n)) {
- log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "String is not UTF-8 clean, ignoring assignment: %s", rvalue);
- free(n);
+ if (!utf8_is_valid(rvalue)) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "String is not UTF-8 clean, ignoring assignment: %s", rvalue);
return 0;
}
return 0;
}
- free(*s);
- if (*n)
- *s = n;
+ if (isempty(rvalue))
+ n = NULL;
else {
else {
- free(n);
- *s = NULL;
+ n = strdup(rvalue);
+ if (!n)
+ return log_oom();
}
}
+ free(*s);
+ *s = n;
+
return 0;
}
return 0;
}
-int config_parse_path(const char *unit,
- const char *filename,
- unsigned line,
- const char *section,
- unsigned section_line,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+int config_parse_path(
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
char **s = data, *n;
char **s = data, *n;