Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: include/AdblockPlus/JsValue.h

Issue 29361562: Issue 3594 - remove circular references JsEngine-JsValue-JsEngine (Closed)
Patch Set: address comments Created Nov. 25, 2016, 12:02 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2016 Eyeo GmbH 3 * Copyright (C) 2006-2016 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 AdblockPlus::JsValuePtr thisPtr = AdblockPlus::JsValuePtr()) const; 125 AdblockPlus::JsValuePtr thisPtr = AdblockPlus::JsValuePtr()) const;
126 126
127 /** 127 /**
128 * Invokes the value as a function (see `IsFunction()`) with single 128 * Invokes the value as a function (see `IsFunction()`) with single
129 * parameter. 129 * parameter.
130 * @param arg A single required parameter. 130 * @param arg A single required parameter.
131 * @return Value returned by the function. 131 * @return Value returned by the function.
132 */ 132 */
133 JsValuePtr Call(const JsValue& arg) const; 133 JsValuePtr Call(const JsValue& arg) const;
134 134
135 v8::Local<v8::Value> UnwrapValue() const; 135 v8::Local<v8::Value> UnwrapValue(JsEngine& jsEngine) const;
136 protected: 136 protected:
137 JsEnginePtr jsEngine; 137 std::weak_ptr<JsEngine> jsEngine;
138 private: 138 private:
139 JsValue(JsEnginePtr jsEngine, v8::Handle<v8::Value> value); 139 JsValue(const std::weak_ptr<JsEngine>& jsEngine, v8::Handle<v8::Value> value );
140 void SetProperty(const std::string& name, v8::Handle<v8::Value> val); 140 void SetProperty(const std::string& name, v8::Handle<v8::Value> val);
141 std::unique_ptr<v8::Persistent<v8::Value>> value; 141 std::unique_ptr<v8::Persistent<v8::Value>> value;
142 }; 142 };
143 } 143 }
144 144
145 #endif 145 #endif
OLDNEW
« no previous file with comments | « include/AdblockPlus/JsEngine.h ('k') | src/FileSystemJsObject.cpp » ('j') | src/JsValue.cpp » ('J')

Powered by Google App Engine
This is Rietveld