Index: fpdfsdk/src/fpdfsave.cpp |
diff --git a/fpdfsdk/src/fpdfsave.cpp b/fpdfsdk/src/fpdfsave.cpp |
index 882161c8fe39c209e4c75d5c69c365c5fc66344a..f643f704d7ea0bdaf09cf3586b7ff9465259f724 100644 |
--- a/fpdfsdk/src/fpdfsave.cpp |
+++ b/fpdfsdk/src/fpdfsave.cpp |
@@ -284,16 +284,14 @@ FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document, |
FPDF_DWORD flags, |
FPDF_BOOL bSetVersion, |
int fileVerion) { |
- CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document; |
+ CPDF_Document* pPDFDoc = CPDFDocumentFromFPDFDocument(document); |
+ if (!pPDFDoc) |
+ return 0; |
+ CPDFXFA_Document* pDoc = (CPDFXFA_Document*)document; |
CFX_PtrArray fileList; |
- |
_SendPreSaveToXFADoc(pDoc, fileList); |
- CPDF_Document* pPDFDoc = pDoc->GetPDFDoc(); |
- if (!pPDFDoc) |
- return 0; |
- |
if (flags < FPDF_INCREMENTAL || flags > FPDF_REMOVE_SECURITY) { |
flags = 0; |
} |
@@ -305,20 +303,18 @@ FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document, |
flags = 0; |
FileMaker.RemoveSecurity(); |
} |
+ |
CFX_IFileWrite* pStreamWrite = NULL; |
FX_BOOL bRet; |
pStreamWrite = new CFX_IFileWrite; |
pStreamWrite->Init(pFileWrite); |
bRet = FileMaker.Create(pStreamWrite, flags); |
- |
_SendPostSaveToXFADoc(pDoc); |
- |
for (int i = 0; i < fileList.GetSize(); i++) { |
IFX_FileStream* pFile = (IFX_FileStream*)fileList.GetAt(i); |
pFile->Release(); |
} |
fileList.RemoveAll(); |
- |
pStreamWrite->Release(); |
return bRet; |
} |