Index: printing/printed_document.cc |
diff --git a/printing/printed_document.cc b/printing/printed_document.cc |
index f1b507dc415c5b5e65dafca8c6a49eff7f1a16ee..63fce8f0d97c34b7d58de7d690c6e1d6ebb7bbab 100644 |
--- a/printing/printed_document.cc |
+++ b/printing/printed_document.cc |
@@ -48,13 +48,15 @@ void DebugDumpPageTask(const base::string16& doc_name, |
base::string16 filename = doc_name; |
filename += |
base::ASCIIToUTF16(base::StringPrintf("_%04d", page->page_number())); |
+ base::FilePath file_path = |
#if defined(OS_WIN) |
- page->metafile()->SaveTo(PrintedDocument::CreateDebugDumpPath( |
- filename, FILE_PATH_LITERAL(".emf"))); |
+ PrintedDocument::CreateDebugDumpPath(filename, FILE_PATH_LITERAL(".emf")); |
#else // OS_WIN |
- page->metafile()->SaveTo(PrintedDocument::CreateDebugDumpPath( |
- filename, FILE_PATH_LITERAL(".pdf"))); |
+ PrintedDocument::CreateDebugDumpPath(filename, FILE_PATH_LITERAL(".pdf")); |
#endif // OS_WIN |
+ base::File file(file_path, |
+ base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); |
+ page->metafile()->SaveTo(&file); |
} |
void DebugDumpDataTask(const base::string16& doc_name, |
@@ -109,7 +111,7 @@ PrintedDocument::~PrintedDocument() { |
} |
void PrintedDocument::SetPage(int page_number, |
- Metafile* metafile, |
+ scoped_ptr<MetafilePlayer> metafile, |
#if defined(OS_WIN) |
double shrink, |
#endif // OS_WIN |
@@ -118,7 +120,7 @@ void PrintedDocument::SetPage(int page_number, |
// Notice the page_number + 1, the reason is that this is the value that will |
// be shown. Users dislike 0-based counting. |
scoped_refptr<PrintedPage> page( |
- new PrintedPage(page_number + 1, metafile, paper_size, page_rect)); |
+ new PrintedPage(page_number + 1, metafile.Pass(), paper_size, page_rect)); |
#if defined(OS_WIN) |
page->set_shrink_factor(shrink); |
#endif // OS_WIN |
@@ -177,26 +179,6 @@ void PrintedDocument::DisconnectSource() { |
mutable_.source_ = NULL; |
} |
-uint32 PrintedDocument::MemoryUsage() const { |
- std::vector< scoped_refptr<PrintedPage> > pages_copy; |
- { |
- base::AutoLock lock(lock_); |
- pages_copy.reserve(mutable_.pages_.size()); |
- PrintedPages::const_iterator end = mutable_.pages_.end(); |
- for (PrintedPages::const_iterator itr = mutable_.pages_.begin(); |
- itr != end; ++itr) { |
- if (itr->second.get()) { |
- pages_copy.push_back(itr->second); |
- } |
- } |
- } |
- uint32 total = 0; |
- for (size_t i = 0; i < pages_copy.size(); ++i) { |
- total += pages_copy[i]->metafile()->GetDataSize(); |
- } |
- return total; |
-} |
- |
void PrintedDocument::set_page_count(int max_page) { |
base::AutoLock lock(lock_); |
DCHECK_EQ(0, mutable_.page_count_); |