| Index: Source/core/fileapi/Blob.h
|
| diff --git a/Source/core/fileapi/Blob.h b/Source/core/fileapi/Blob.h
|
| index e564a6514c28a6bf48f453cd7637671155a65865..d61ed70fa9884903a46f360cc7184215a2e8b29c 100644
|
| --- a/Source/core/fileapi/Blob.h
|
| +++ b/Source/core/fileapi/Blob.h
|
| @@ -33,6 +33,7 @@
|
|
|
| #include "bindings/v8/ScriptWrappable.h"
|
| #include "core/html/URLRegistry.h"
|
| +#include "heap/Handle.h"
|
| #include "platform/blob/BlobData.h"
|
| #include "wtf/PassOwnPtr.h"
|
| #include "wtf/PassRefPtr.h"
|
| @@ -43,22 +44,23 @@ namespace WebCore {
|
|
|
| class ExecutionContext;
|
|
|
| -class Blob : public ScriptWrappable, public URLRegistrable, public RefCounted<Blob> {
|
| +class Blob : public RefCountedWillBeGarbageCollectedFinalized<Blob>, public ScriptWrappable, public URLRegistrable {
|
| + DECLARE_GC_INFO;
|
| public:
|
| - static PassRefPtr<Blob> create()
|
| + static PassRefPtrWillBeRawPtr<Blob> create()
|
| {
|
| - return adoptRef(new Blob(BlobDataHandle::create()));
|
| + return adoptRefWillBeNoop(new Blob(BlobDataHandle::create()));
|
| }
|
|
|
| - static PassRefPtr<Blob> create(PassRefPtr<BlobDataHandle> blobDataHandle)
|
| + static PassRefPtrWillBeRawPtr<Blob> create(PassRefPtr<BlobDataHandle> blobDataHandle)
|
| {
|
| - return adoptRef(new Blob(blobDataHandle));
|
| + return adoptRefWillBeNoop(new Blob(blobDataHandle));
|
| }
|
|
|
| virtual ~Blob();
|
|
|
| virtual unsigned long long size() const { return m_blobDataHandle->size(); }
|
| - virtual PassRefPtr<Blob> slice(long long start = 0, long long end = std::numeric_limits<long long>::max(), const String& contentType = String()) const;
|
| + virtual PassRefPtrWillBeRawPtr<Blob> slice(long long start = 0, long long end = std::numeric_limits<long long>::max(), const String& contentType = String()) const;
|
|
|
| String type() const { return m_blobDataHandle->type(); }
|
| String uuid() const { return m_blobDataHandle->uuid(); }
|
| @@ -75,6 +77,9 @@ public:
|
| virtual URLRegistry& registry() const OVERRIDE FINAL;
|
|
|
| static void clampSliceOffsets(long long size, long long& start, long long& end);
|
| +
|
| + void trace(Visitor*) { }
|
| +
|
| protected:
|
| explicit Blob(PassRefPtr<BlobDataHandle>);
|
|
|
|
|