diff options
Diffstat (limited to 'vm/Properties.c')
-rw-r--r-- | vm/Properties.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/vm/Properties.c b/vm/Properties.c index 288085b66..243dc3ee3 100644 --- a/vm/Properties.c +++ b/vm/Properties.c @@ -246,6 +246,7 @@ void dvmSetCommandLineProperties(Object* propObj) */ char* dvmGetProperty(const char* key) { + Thread* self = dvmThreadSelf(); ClassObject* system; Method* getProp; StringObject* keyObj = NULL; @@ -270,15 +271,17 @@ char* dvmGetProperty(const char* key) 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; } |