summaryrefslogtreecommitdiff
path: root/src/process_wrap.cc
diff options
context:
space:
mode:
authorssuda <sambasivarao@gmail.com>2012-03-20 21:09:49 +0530
committerBert Belder <bertbelder@gmail.com>2012-04-28 23:51:41 +0200
commitdb844b152a92bcc02c20e62ea85958c0f3dfc532 (patch)
treeb396947b2f2f0d899ee7c421fb422830924252a8 /src/process_wrap.cc
parent3546383cf0c9738019ecee88858b9f78c5202428 (diff)
downloadandroid-node-v8-db844b152a92bcc02c20e62ea85958c0f3dfc532.tar.gz
android-node-v8-db844b152a92bcc02c20e62ea85958c0f3dfc532.tar.bz2
android-node-v8-db844b152a92bcc02c20e62ea85958c0f3dfc532.zip
process: don't use strdup()
file and cwd can be directly used from Utf8Value. Conflicts: src/process_wrap.cc
Diffstat (limited to 'src/process_wrap.cc')
-rw-r--r--src/process_wrap.cc15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/process_wrap.cc b/src/process_wrap.cc
index 39ebb054fc..4a434377c6 100644
--- a/src/process_wrap.cc
+++ b/src/process_wrap.cc
@@ -139,9 +139,9 @@ class ProcessWrap : public HandleWrap {
// options.file
Local<Value> file_v = js_options->Get(String::NewSymbol("file"));
- if (!file_v.IsEmpty() && file_v->IsString()) {
- String::Utf8Value file(file_v->ToString());
- options.file = strdup(*file);
+ String::Utf8Value file(file_v->IsString() ? file_v : Local<Value>());
+ if (file.length() > 0) {
+ options.file = *file;
} else {
return ThrowException(Exception::TypeError(String::New("Bad argument")));
}
@@ -162,12 +162,10 @@ class ProcessWrap : public HandleWrap {
// options.cwd
Local<Value> cwd_v = js_options->Get(String::NewSymbol("cwd"));
- if (!cwd_v.IsEmpty() && cwd_v->IsString()) {
- String::Utf8Value cwd(cwd_v->ToString());
+ String::Utf8Value cwd(cwd_v->IsString() ? cwd_v : Local<Value>());
if (cwd.length() > 0) {
- options.cwd = strdup(*cwd);
+ options.cwd = *cwd;
}
- }
// options.env
Local<Value> env_v = js_options->Get(String::NewSymbol("envPairs"));
@@ -228,9 +226,6 @@ class ProcessWrap : public HandleWrap {
delete [] options.args;
}
- free(options.cwd);
- free((void*)options.file);
-
if (options.env) {
for (int i = 0; options.env[i]; i++) free(options.env[i]);
delete [] options.env;