diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-05-03 17:19:53 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-05-03 17:19:53 +0000 |
commit | 525147a1f6d6cd736a407d1e189ac25d2f4726e8 (patch) | |
tree | bdc818c52d902a5a4e8ce8a4f0ba29bd11007b05 /fpdfsdk/fpdf_transformpage.cpp | |
parent | ccd9421589922b8f35ee5330d7fdac7edea081db (diff) | |
download | pdfium-525147a1f6d6cd736a407d1e189ac25d2f4726e8.tar.xz |
Use strict types in FPDF API, try #3
Rather than messing with actual inheritence, add type-checking wrappers
and just blatantly cast to incomplete types. Along the way, this points
out places where we would downcast without checking, which I fix.
Change-Id: Ieb303eb46ad8522dfe082454f1f10f247ffd52d5
Reviewed-on: https://pdfium-review.googlesource.com/32030
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdf_transformpage.cpp')
-rw-r--r-- | fpdfsdk/fpdf_transformpage.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fpdfsdk/fpdf_transformpage.cpp b/fpdfsdk/fpdf_transformpage.cpp index d2d9f8dbc4..6706a18354 100644 --- a/fpdfsdk/fpdf_transformpage.cpp +++ b/fpdfsdk/fpdf_transformpage.cpp @@ -211,12 +211,14 @@ FPDF_EXPORT FPDF_CLIPPATH FPDF_CALLCONV FPDF_CreateClipPath(float left, auto pNewClipPath = pdfium::MakeUnique<CPDF_ClipPath>(); pNewClipPath->AppendPath(Path, FXFILL_ALTERNATE, false); - return pNewClipPath.release(); // Caller takes ownership. + + // Caller takes ownership. + return FPDFClipPathFromCPDFClipPath(pNewClipPath.release()); } FPDF_EXPORT void FPDF_CALLCONV FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath) { // Take ownership back from caller and destroy. - std::unique_ptr<CPDF_ClipPath>(static_cast<CPDF_ClipPath*>(clipPath)); + std::unique_ptr<CPDF_ClipPath>(CPDFClipPathFromFPDFClipPath(clipPath)); } void OutputPath(std::ostringstream& buf, CPDF_Path path) { @@ -268,7 +270,7 @@ FPDF_EXPORT void FPDF_CALLCONV FPDFPage_InsertClipPath(FPDF_PAGE page, return; std::ostringstream strClip; - auto* pClipPath = static_cast<CPDF_ClipPath*>(clipPath); + CPDF_ClipPath* pClipPath = CPDFClipPathFromFPDFClipPath(clipPath); for (size_t i = 0; i < pClipPath->GetPathCount(); ++i) { CPDF_Path path = pClipPath->GetPath(i); if (path.GetPoints().empty()) { |