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

Side by Side Diff: samples/pdfium_test.cc

Issue 2397473006: Remove ownership of CPDFSDK_Document from CPDFXFA_Document (Closed)
Patch Set: Rebase to master Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « fpdfsdk/fpdfxfa/cpdfxfa_document.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <limits.h> 5 #include <limits.h>
6 #include <stdio.h> 6 #include <stdio.h>
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 79
80 struct AvailDeleter { 80 struct AvailDeleter {
81 inline void operator()(FPDF_AVAIL avail) const { FPDFAvail_Destroy(avail); } 81 inline void operator()(FPDF_AVAIL avail) const { FPDFAvail_Destroy(avail); }
82 }; 82 };
83 83
84 static FPDF_FORMFILLINFO_PDFiumTest* ToPDFiumTestFormFillInfo( 84 static FPDF_FORMFILLINFO_PDFiumTest* ToPDFiumTestFormFillInfo(
85 FPDF_FORMFILLINFO* formFillInfo) { 85 FPDF_FORMFILLINFO* formFillInfo) {
86 return static_cast<FPDF_FORMFILLINFO_PDFiumTest*>(formFillInfo); 86 return static_cast<FPDF_FORMFILLINFO_PDFiumTest*>(formFillInfo);
87 } 87 }
88 88
89 static void CloseDocAndForm(FPDF_DOCUMENT doc, FPDF_FORMHANDLE form) {
90 #ifdef PDF_ENABLE_XFA
91 // Note: The shut down order here is the reverse of the non-XFA branch order.
92 // Need to work out if this is required, and if it is, the lifetimes of
93 // objects owned by |doc| that |form| reference.
94 FPDF_CloseDocument(doc);
95 FPDFDOC_ExitFormFillEnvironment(form);
96 #else // PDF_ENABLE_XFA
97 FPDFDOC_ExitFormFillEnvironment(form);
98 FPDF_CloseDocument(doc);
99 #endif // PDF_ENABLE_XFA
100 }
101
102 static bool CheckDimensions(int stride, int width, int height) { 89 static bool CheckDimensions(int stride, int width, int height) {
103 if (stride < 0 || width < 0 || height < 0) 90 if (stride < 0 || width < 0 || height < 0)
104 return false; 91 return false;
105 if (height > 0 && width > INT_MAX / height) 92 if (height > 0 && width > INT_MAX / height)
106 return false; 93 return false;
107 return true; 94 return true;
108 } 95 }
109 96
110 static void WritePpm(const char* pdf_name, int num, const void* buffer_void, 97 static void WritePpm(const char* pdf_name, int num, const void* buffer_void,
111 int stride, int width, int height) { 98 int stride, int width, int height) {
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 int bad_pages = 0; 771 int bad_pages = 0;
785 for (int i = 0; i < page_count; ++i) { 772 for (int i = 0; i < page_count; ++i) {
786 if (bIsLinearized) { 773 if (bIsLinearized) {
787 nRet = PDF_DATA_NOTAVAIL; 774 nRet = PDF_DATA_NOTAVAIL;
788 while (nRet == PDF_DATA_NOTAVAIL) 775 while (nRet == PDF_DATA_NOTAVAIL)
789 nRet = FPDFAvail_IsPageAvail(pdf_avail, i, &hints); 776 nRet = FPDFAvail_IsPageAvail(pdf_avail, i, &hints);
790 777
791 if (nRet == PDF_DATA_ERROR) { 778 if (nRet == PDF_DATA_ERROR) {
792 fprintf(stderr, "Unknown error in checking if page %d is available.\n", 779 fprintf(stderr, "Unknown error in checking if page %d is available.\n",
793 i); 780 i);
794 CloseDocAndForm(doc, form); 781 FPDFDOC_ExitFormFillEnvironment(form);
782 FPDF_CloseDocument(doc);
795 return; 783 return;
796 } 784 }
797 } 785 }
798 if (RenderPage(name, doc, form, form_callbacks, i, options, events)) 786 if (RenderPage(name, doc, form, form_callbacks, i, options, events))
799 ++rendered_pages; 787 ++rendered_pages;
800 else 788 else
801 ++bad_pages; 789 ++bad_pages;
802 } 790 }
803 791
804 FORM_DoDocumentAAction(form, FPDFDOC_AACTION_WC); 792 FORM_DoDocumentAAction(form, FPDFDOC_AACTION_WC);
805 793
806 CloseDocAndForm(doc, form); 794 FPDFDOC_ExitFormFillEnvironment(form);
795 FPDF_CloseDocument(doc);
807 796
808 fprintf(stderr, "Rendered %d pages.\n", rendered_pages); 797 fprintf(stderr, "Rendered %d pages.\n", rendered_pages);
809 if (bad_pages) 798 if (bad_pages)
810 fprintf(stderr, "Skipped %d bad pages.\n", bad_pages); 799 fprintf(stderr, "Skipped %d bad pages.\n", bad_pages);
811 } 800 }
812 801
813 static void ShowConfig() { 802 static void ShowConfig() {
814 std::string config; 803 std::string config;
815 std::string maybe_comma; 804 std::string maybe_comma;
816 #if PDF_ENABLE_V8 805 #if PDF_ENABLE_V8
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 delete platform; 922 delete platform;
934 923
935 #ifdef V8_USE_EXTERNAL_STARTUP_DATA 924 #ifdef V8_USE_EXTERNAL_STARTUP_DATA
936 free(const_cast<char*>(natives.data)); 925 free(const_cast<char*>(natives.data));
937 free(const_cast<char*>(snapshot.data)); 926 free(const_cast<char*>(snapshot.data));
938 #endif // V8_USE_EXTERNAL_STARTUP_DATA 927 #endif // V8_USE_EXTERNAL_STARTUP_DATA
939 #endif // PDF_ENABLE_V8 928 #endif // PDF_ENABLE_V8
940 929
941 return 0; 930 return 0;
942 } 931 }
OLDNEW
« no previous file with comments | « fpdfsdk/fpdfxfa/cpdfxfa_document.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698