init: Let property_get return std::string.
Bug: 22654233
Change-Id: Id6091f58432f75e966b9871256049fbe17766c10
diff --git a/init/init_parser.cpp b/init/init_parser.cpp
index 956ed25..41b89f1 100644
--- a/init/init_parser.cpp
+++ b/init/init_parser.cpp
@@ -247,9 +247,7 @@
while (*src_ptr && left > 0) {
char *c;
char prop[PROP_NAME_MAX + 1];
- char prop_val[PROP_VALUE_MAX];
int prop_len = 0;
- int prop_val_len;
c = strchr(src_ptr, '$');
if (!c) {
@@ -307,14 +305,14 @@
goto err;
}
- prop_val_len = property_get(prop, prop_val);
- if (!prop_val_len) {
+ std::string prop_val = property_get(prop);
+ if (prop_val.empty()) {
ERROR("property '%s' doesn't exist while expanding '%s'\n",
prop, src);
goto err;
}
- ret = push_chars(&dst_ptr, &left, prop_val, prop_val_len);
+ ret = push_chars(&dst_ptr, &left, prop_val.c_str(), prop_val.size());
if (ret < 0)
goto err_nospace;
src_ptr = c;
@@ -586,17 +584,13 @@
} else {
const char* equals = strchr(test, '=');
if (equals) {
- char prop_name[PROP_NAME_MAX + 1];
- char value[PROP_VALUE_MAX];
int length = equals - test;
if (length <= PROP_NAME_MAX) {
- int ret;
- memcpy(prop_name, test, length);
- prop_name[length] = 0;
+ std::string prop_name(test, length);
+ std::string value = property_get(prop_name.c_str());
/* does the property exist, and match the trigger value? */
- ret = property_get(prop_name, value);
- if (ret > 0 && (!strcmp(equals + 1, value) ||
+ if (!value.empty() && (!strcmp(equals + 1, value.c_str()) ||
!strcmp(equals + 1, "*"))) {
continue;
}