diff --git a/ReactAndroid/src/main/jni/react/JSCLegacyProfiler.cpp b/ReactAndroid/src/main/jni/react/JSCLegacyProfiler.cpp index 64f47b00b..5d2a7e499 100644 --- a/ReactAndroid/src/main/jni/react/JSCLegacyProfiler.cpp +++ b/ReactAndroid/src/main/jni/react/JSCLegacyProfiler.cpp @@ -7,6 +7,7 @@ #include #include "JSCHelpers.h" #include "JSCLegacyProfiler.h" +#include "Value.h" static JSValueRef nativeProfilerStart( JSContextRef ctx, @@ -20,7 +21,7 @@ static JSValueRef nativeProfilerStart( return JSValueMakeUndefined(ctx); } - JSStringRef title = JSValueToStringCopy(ctx, arguments[0], NULL); + JSStringRef title = JSValueToStringCopy(ctx, arguments[0], exception); JSStartProfiling(ctx, title); JSStringRelease(title); return JSValueMakeUndefined(ctx); @@ -38,8 +39,16 @@ static JSValueRef nativeProfilerEnd( return JSValueMakeUndefined(ctx); } - JSStringRef title = JSValueToStringCopy(ctx, arguments[0], NULL); - JSEndProfilingAndRender(ctx, title, "/sdcard/profile.json"); + std::string writeLocation("/sdcard/"); + if (argumentCount > 1) { + JSStringRef fileName = JSValueToStringCopy(ctx, arguments[1], exception); + writeLocation += facebook::react::String::ref(fileName).str(); + JSStringRelease(fileName); + } else { + writeLocation += "profile.json"; + } + JSStringRef title = JSValueToStringCopy(ctx, arguments[0], exception); + JSEndProfilingAndRender(ctx, title, writeLocation.c_str()); JSStringRelease(title); return JSValueMakeUndefined(ctx); }