value = "";
}
- keyStr = dvmCreateStringFromCstr(key, ALLOC_DEFAULT);
- valueStr = dvmCreateStringFromCstr(value, ALLOC_DEFAULT);
+ keyStr = dvmCreateStringFromCstr(key);
+ valueStr = dvmCreateStringFromCstr(value);
if (keyStr == NULL || valueStr == NULL) {
LOGW("setProperty string creation failed\n");
goto bail;
setProperty(propObj, put, "file.separator", "/");
setProperty(propObj, put, "line.separator", "\n");
setProperty(propObj, put, "path.separator", ":");
-
+
/*
* These show up elsewhere, so do them here too.
*/
*/
char* dvmGetProperty(const char* key)
{
+ Thread* self = dvmThreadSelf();
ClassObject* system;
Method* getProp;
StringObject* keyObj = NULL;
goto bail;
}
- keyObj = dvmCreateStringFromCstr(key, ALLOC_DEFAULT);
+ keyObj = dvmCreateStringFromCstr(key);
if (keyObj == NULL)
goto bail;
JValue val;
- dvmCallMethod(dvmThreadSelf(), getProp, NULL, &val, keyObj);
+ dvmCallMethod(self, getProp, NULL, &val, keyObj);
valueObj = (StringObject*) val.l;
if (valueObj == NULL)
goto bail;
+ /* don't need to call dvmAddTrackedAlloc on result; conv to C string safe */
+
result = dvmCreateCstrFromString(valueObj);
/* fall through with result */
bail:
- dvmReleaseTrackedAlloc((Object*)keyObj, NULL);
+ dvmReleaseTrackedAlloc((Object*)keyObj, self);
return result;
}