Fix sevg above CPDF_PageContentGenerator::ProcessImage()

Adds a test to process an image for which a stream hasn't been
set.

BUG=660756

Review-Url: https://codereview.chromium.org/2494683007
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index ad1ffaf..20b4ea6 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -94,16 +94,21 @@
     return;
   }
   buf << "q " << pImageObj->m_Matrix << " cm ";
+
   CPDF_Image* pImage = pImageObj->GetImage();
-  if (!pImage->IsInline()) {
-    CPDF_Stream* pStream = pImage->GetStream();
-    uint32_t dwSavedObjNum = pStream->GetObjNum();
-    CFX_ByteString name = RealizeResource(pStream, "XObject");
-    if (dwSavedObjNum == 0) {
-      pImageObj->SetUnownedImage(m_pDocument->GetPageData()->GetImage(pStream));
-    }
-    buf << "/" << PDF_NameEncode(name) << " Do Q\n";
-  }
+  if (pImage->IsInline())
+    return;
+
+  CPDF_Stream* pStream = pImage->GetStream();
+  if (!pStream)
+    return;
+
+  bool bWasInline = pStream->IsInline();
+  CFX_ByteString name = RealizeResource(pStream, "XObject");
+  if (bWasInline)
+    pImageObj->SetUnownedImage(m_pDocument->GetPageData()->GetImage(pStream));
+
+  buf << "/" << PDF_NameEncode(name) << " Do Q\n";
 }
 
 void CPDF_PageContentGenerator::ProcessForm(CFX_ByteTextBuf& buf,
diff --git a/fpdfsdk/fpdfeditimg_unittest.cpp b/fpdfsdk/fpdfeditimg_unittest.cpp
index a844e7e..ae4af25 100644
--- a/fpdfsdk/fpdfeditimg_unittest.cpp
+++ b/fpdfsdk/fpdfeditimg_unittest.cpp
@@ -43,6 +43,7 @@
   FPDF_PAGEOBJECT page_image = FPDFPageObj_NewImgeObj(doc);
   FPDFPage_InsertObject(page, page_image);
   EXPECT_EQ(1, FPDFPage_CountObject(page));
+  EXPECT_TRUE(FPDFPage_GenerateContent(page));
 
   FPDF_ClosePage(page);
   FPDF_CloseDocument(doc);