Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Unified Diff: Source/bindings/core/v8/ScriptSourceCode.h

Issue 847803002: Make ScriptStreamer and dependents Oilpan friendly. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: nullptr tidying Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/core/v8/ScriptSourceCode.h
diff --git a/Source/bindings/core/v8/ScriptSourceCode.h b/Source/bindings/core/v8/ScriptSourceCode.h
index b7db957876c4130195800b0e930a55b92aaf3136..7edc95c85f502bc31b8b867c271d4c2bfca24475 100644
--- a/Source/bindings/core/v8/ScriptSourceCode.h
+++ b/Source/bindings/core/v8/ScriptSourceCode.h
@@ -34,55 +34,34 @@
#include "bindings/core/v8/ScriptStreamer.h"
#include "core/fetch/ResourcePtr.h"
#include "core/fetch/ScriptResource.h"
+#include "platform/heap/Handle.h"
#include "platform/weborigin/KURL.h"
-#include "wtf/PassOwnPtr.h"
#include "wtf/text/TextPosition.h"
#include "wtf/text/WTFString.h"
namespace blink {
-class ScriptSourceCode {
-public:
- ScriptSourceCode(const String& source, const KURL& url = KURL(), const TextPosition& startPosition = TextPosition::minimumPosition())
- : m_source(source)
- , m_resource(0)
- , m_url(url)
- , m_startPosition(startPosition)
- {
- if (!m_url.isEmpty())
- m_url.removeFragmentIdentifier();
- }
+template <class R> class ResourcePtr;
+class ScriptResource;
+class ScriptSourceCode final {
+ ALLOW_ONLY_INLINE_ALLOCATION();
+public:
+ ScriptSourceCode();
// We lose the encoding information from ScriptResource.
// Not sure if that matters.
- ScriptSourceCode(ScriptResource* resource)
- : m_source(resource->script())
- , m_resource(resource)
- , m_startPosition(TextPosition::minimumPosition())
- {
- }
+ explicit ScriptSourceCode(ScriptResource*);
+ ScriptSourceCode(const String&, const KURL& = KURL(), const TextPosition& startPosition = TextPosition::minimumPosition());
+ ScriptSourceCode(PassRefPtrWillBeRawPtr<ScriptStreamer>, ScriptResource*);
- ScriptSourceCode(PassRefPtr<ScriptStreamer> streamer, ScriptResource* resource)
- : m_source(resource->script())
- , m_resource(resource)
- , m_streamer(streamer)
- , m_startPosition(TextPosition::minimumPosition())
- {
- }
+ ~ScriptSourceCode();
+ void trace(Visitor*);
bool isEmpty() const { return m_source.isEmpty(); }
const String& source() const { return m_source; }
ScriptResource* resource() const { return m_resource.get(); }
- const KURL& url() const
- {
- if (m_url.isEmpty() && m_resource) {
- m_url = m_resource->response().url();
- if (!m_url.isEmpty())
- m_url.removeFragmentIdentifier();
- }
- return m_url;
- }
+ const KURL& url() const;
int startLine() const { return m_startPosition.m_line.oneBasedInt(); }
const TextPosition& startPosition() const { return m_startPosition; }
@@ -91,11 +70,13 @@ public:
private:
String m_source;
ResourcePtr<ScriptResource> m_resource;
- RefPtr<ScriptStreamer> m_streamer;
+ RefPtrWillBeMember<ScriptStreamer> m_streamer;
mutable KURL m_url;
TextPosition m_startPosition;
};
} // namespace blink
+WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::ScriptSourceCode);
+
#endif // ScriptSourceCode_h

Powered by Google App Engine
This is Rietveld 408576698