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

Unified Diff: storage/browser/blob/shareable_file_reference.h

Issue 1108083002: Create blobs from Disk Cache entries. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remediate + windows build Created 5 years, 6 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: storage/browser/blob/shareable_file_reference.h
diff --git a/storage/browser/blob/shareable_file_reference.h b/storage/browser/blob/shareable_file_reference.h
index e2739dcf8604654772991a11d14239c1c20cba23..ca899ca5e52ba72a1a48250a167229dc04367c4b 100644
--- a/storage/browser/blob/shareable_file_reference.h
+++ b/storage/browser/blob/shareable_file_reference.h
@@ -5,8 +5,7 @@
#ifndef STORAGE_BROWSER_BLOB_SHAREABLE_FILE_REFERENCE_H_
#define STORAGE_BROWSER_BLOB_SHAREABLE_FILE_REFERENCE_H_
-#include <vector>
-
+#include "storage/browser/blob/blob_data_item.h"
#include "storage/browser/blob/scoped_file.h"
#include "storage/browser/storage_browser_export.h"
@@ -16,8 +15,10 @@ namespace storage {
// same path if it already exists in its internal map.
// This class is non-thread-safe and all methods must be called on a single
// thread.
-class STORAGE_EXPORT ShareableFileReference
- : public base::RefCounted<ShareableFileReference> {
+// This class inherits directly from BlobDataItem::DataHandle as an optimization
+// to remove double-dereferences from refcounting the DataHandle objects. This
+// only works because there are no other fields in the DataHandle.
michaeln 2015/06/12 23:43:06 I don't think the editorial comments about dbl-der
dmurph 2015/06/13 00:09:43 I asked him to add this in case it wasn't clear fo
gavinp 2015/06/15 14:01:19 Removed, just because I'm slightly with michaeln h
+class STORAGE_EXPORT ShareableFileReference : public BlobDataItem::DataHandle {
public:
typedef ScopedFile::ScopeOutCallback FinalReleaseCallback;
@@ -60,10 +61,8 @@ class STORAGE_EXPORT ShareableFileReference
void AddFinalReleaseCallback(const FinalReleaseCallback& callback);
private:
- friend class base::RefCounted<ShareableFileReference>;
-
ShareableFileReference(ScopedFile scoped_file);
- ~ShareableFileReference();
+ ~ShareableFileReference() override;
ScopedFile scoped_file_;

Powered by Google App Engine
This is Rietveld 408576698