Remove extra JSUnprotect call

Summary:
public
Value doesn't protect it's value, so it shouldn't be unprotecting them in its destructor.

I'm also pretty sure we don't need to Protect the exception while it's on the stack according to the JSValueProtect docs: https://developer.apple.com/library/mac/documentation/JavaScriptCore/Reference/JSValueRef_header_reference/index.html#//apple_ref/c/func/JSValueProtect

Reviewed By: lexs

Differential Revision: D2779255

fb-gh-sync-id: 7d5df34639c8e7c41e92d3b8d652b93443d194a1
This commit is contained in:
Andy Street 2016-01-05 04:57:51 -08:00 committed by facebook-github-bot-1
parent 3507bc61a5
commit 1c1d7006c2
3 changed files with 0 additions and 10 deletions

View File

@ -86,7 +86,6 @@ static std::string executeJSCallWithJSC(
"__fbBatchedBridge.", methodName, ".apply(null, ", "__fbBatchedBridge.", methodName, ".apply(null, ",
folly::toJson(jsonArgs), ")"); folly::toJson(jsonArgs), ")");
auto result = evaluateScript(ctx, String(js.c_str()), nullptr); auto result = evaluateScript(ctx, String(js.c_str()), nullptr);
JSValueProtect(ctx, result);
return Value(ctx, result).toJSONString(); return Value(ctx, result).toJSONString();
} }
@ -247,7 +246,6 @@ static JSValueRef nativeFlushQueueImmediate(
return JSValueMakeUndefined(ctx); return JSValueMakeUndefined(ctx);
} }
JSValueProtect(ctx, arguments[0]);
std::string resStr = Value(ctx, arguments[0]).toJSONString(); std::string resStr = Value(ctx, arguments[0]).toJSONString();
executor->flushQueueImmediate(resStr); executor->flushQueueImmediate(resStr);

View File

@ -23,12 +23,6 @@ Value::Value(Value&& other) :
other.m_value = nullptr; other.m_value = nullptr;
} }
Value::~Value() {
if (m_value) {
JSValueUnprotect(m_context, m_value);
}
}
JSContextRef Value::context() const { JSContextRef Value::context() const {
return m_context; return m_context;
} }
@ -37,7 +31,6 @@ std::string Value::toJSONString(unsigned indent) const {
JSValueRef exn; JSValueRef exn;
auto stringToAdopt = JSValueCreateJSONString(m_context, m_value, indent, &exn); auto stringToAdopt = JSValueCreateJSONString(m_context, m_value, indent, &exn);
if (stringToAdopt == nullptr) { if (stringToAdopt == nullptr) {
JSValueProtect(m_context, exn);
std::string exceptionText = Value(m_context, exn).toString().str(); std::string exceptionText = Value(m_context, exn).toString().str();
throwJSExecutionException("Exception creating JSON string: %s", exceptionText.c_str()); throwJSExecutionException("Exception creating JSON string: %s", exceptionText.c_str());
} }

View File

@ -142,7 +142,6 @@ class Value : public noncopyable {
public: public:
Value(JSContextRef context, JSValueRef value); Value(JSContextRef context, JSValueRef value);
Value(Value&&); Value(Value&&);
~Value();
operator JSValueRef() const { operator JSValueRef() const {
return m_value; return m_value;