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

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: Add ScriptSourceCode::isNull() comment 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
« no previous file with comments | « Source/bindings/core/v8/ScriptPreprocessor.cpp ('k') | Source/bindings/core/v8/ScriptSourceCode.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..3189ebf325a8de7d1974200dfbb0f1d684888cad 100644
--- a/Source/bindings/core/v8/ScriptSourceCode.h
+++ b/Source/bindings/core/v8/ScriptSourceCode.h
@@ -34,68 +34,55 @@
#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(); }
+ // The null value represents a missing script, created by the nullary
+ // constructor, and differs from the empty script.
+ bool isNull() const { return m_source.isNull(); }
+
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; }
ScriptStreamer* streamer() const { return m_streamer.get(); }
private:
+ void treatNullSourceAsEmpty();
+
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
« no previous file with comments | « Source/bindings/core/v8/ScriptPreprocessor.cpp ('k') | Source/bindings/core/v8/ScriptSourceCode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698