Index: printing/native_metafile_factory.cc |
diff --git a/printing/native_metafile_factory.cc b/printing/native_metafile_factory.cc |
index f97145252702b7c834b805bf5bd0663d3e184ad6..f31994b48ec9ba3028a0f6f2faa0f9b5669a34b7 100644 |
--- a/printing/native_metafile_factory.cc |
+++ b/printing/native_metafile_factory.cc |
@@ -4,6 +4,8 @@ |
#include "printing/native_metafile_factory.h" |
+#include "base/scoped_ptr.h" |
+ |
#if defined(OS_WIN) |
#include "printing/emf_win.h" |
#elif defined(OS_MACOSX) |
@@ -15,7 +17,24 @@ |
namespace printing { |
// static |
-printing::NativeMetafile* NativeMetafileFactory::Create() { |
+NativeMetafile* NativeMetafileFactory::Create() { |
+ scoped_ptr<NativeMetafile> metafile(CreateNewMetafile()); |
+ if (!metafile->Init()) |
+ return NULL; |
+ return metafile.release(); |
+} |
+ |
+// static |
+NativeMetafile* NativeMetafileFactory::CreateFromData( |
+ const void* src_buffer, uint32 src_buffer_size) { |
+ scoped_ptr<NativeMetafile> metafile(CreateNewMetafile()); |
+ if (!metafile->InitFromData(src_buffer, src_buffer_size)) |
+ return NULL; |
+ return metafile.release(); |
+} |
+ |
+// static |
+NativeMetafile* NativeMetafileFactory::CreateNewMetafile(){ |
#if defined(OS_WIN) |
return new printing::Emf; |
#elif defined(OS_MACOSX) |