Fix PDF Path object Bezier joins rendering
In the pdf attached to the bug, CFX_AggDeviceDriver::DrawPath()
rendered PDF path objects with sharp & wrong joins.
The issue only occur with bezier curves, changing the following
method call from agg::path_storage::add_path_curve() to
agg::path_storage::add_path() will fix those issues.
The md5 hashes of embedder tests that were dependent on this
wrong behavior are updated. All of those tests were using the
annotation_stamp_with_ap.pdf file. In the ticket, I have attached
a png diff of what changed in this file.
Bug: pdfium:1958
Change-Id: Ida2d0f7a78d41a352540b5782a0848198708103f
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/102430
Reviewed-by: Nigi <nigi@chromium.org>
Commit-Queue: Nigi <nigi@chromium.org>
diff --git a/DEPS b/DEPS
index 13b1443..0ec492c 100644
--- a/DEPS
+++ b/DEPS
@@ -140,7 +140,7 @@
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling pdfium_tests
# and whatever else without interference from each other.
- 'pdfium_tests_revision': '08f1b2bf9c1fc585cd7c3eb7f880302a17478d08',
+ 'pdfium_tests_revision': '20e9894b12154d257612a2829a4b4a37e057267e',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling resultdb
# and whatever else without interference from each other.
diff --git a/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp b/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp
index cda7d91..a51e16e 100644
--- a/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp
+++ b/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp
@@ -433,9 +433,9 @@
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "a791fdb4f595bb6c4187cc2aeed5e9e8";
#if BUILDFLAG(IS_APPLE)
- return "7a209e29caeeab7d2b25b34570a4ace6";
+ return "8170c539e95f22f14eb8f266a5f1bbed";
#else
- return "3bbbfc6cc18801906285a232c4a20617";
+ return "d1fd087e59d4dcebf47b56570bdb8c22";
#endif
}();
diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp
index 4668659..a6fcb21 100644
--- a/core/fxge/agg/fx_agg_driver.cpp
+++ b/core/fxge/agg/fx_agg_driver.cpp
@@ -942,7 +942,7 @@
agg::curve4 curve(pos0.x, pos0.y, pos.x, pos.y, pos2.x, pos2.y, pos3.x,
pos3.y);
i += 2;
- agg_path.add_path_curve(curve);
+ agg_path.add_path(curve);
}
}
if (points[i].m_CloseFigure)
diff --git a/fpdfsdk/fpdf_annot_embeddertest.cpp b/fpdfsdk/fpdf_annot_embeddertest.cpp
index c1ad3a9..0fc27bc 100644
--- a/fpdfsdk/fpdf_annot_embeddertest.cpp
+++ b/fpdfsdk/fpdf_annot_embeddertest.cpp
@@ -1108,27 +1108,27 @@
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "f671765166acf45d80e833ea3aff8b90";
#if BUILDFLAG(IS_APPLE)
- return "e31421f86c61d4e9cda138f15f561ca3";
+ return "34614087e04b729b7b8c37739dcf9af9";
#else
- return "980e7636d864f7f7d323a31ad4e8fa04";
+ return "31a94d22460171cd83169daf6a6956ee";
#endif
}();
const char* md5_two_paths = []() {
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "7d2db46e1ae6bcf88d18d334af309551";
#if BUILDFLAG(IS_APPLE)
- return "58d932492f9d485d6a4bc0ba76c04557";
+ return "6cdaf6b3e5145f435d8ccae6db5cf9af";
#else
- return "4c779c394b6790f8cf80305b566b663b";
+ return "ed49fefef45f14121f8150cde10006c4";
#endif
}();
const char* md5_new_annot = []() {
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "92bfb06058ff608571a3baf65f7fc05d";
#if BUILDFLAG(IS_APPLE)
- return "61f9ad13f2fd235753db198cf9704773";
+ return "55dab4f158fdc284e439b88c4306373c";
#else
- return "97effd68dcf86273f68d126d6b45152e";
+ return "cc08493b1f079803930388ecc703be9d";
#endif
}();
@@ -1329,18 +1329,18 @@
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "4ba31e174d873b3fda1d7a160d4a0e85";
#if BUILDFLAG(IS_APPLE)
- return "c6fcbceb2f079bef10458ac60db3a10c";
+ return "17ac49518eabbb6a7632a547269c40a3";
#else
- return "62c2706511cb50e32e7caeb82b1d3d49";
+ return "e79446398d4508bc2cb47e6cf2a677ed";
#endif
}();
const char* md5_modified_image = []() {
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "5806fadc1a192bc4bb07511a0711c957";
#if BUILDFLAG(IS_APPLE)
- return "8068eb568e5c1c5fbe84e98f7a980ac3";
+ return "ce68959f74242d588af7fb82be5ba0ab";
#else
- return "83093ce9fac746db69fbd2fb394434ac";
+ return "425646a517a23104b9ef22881a19b3e2";
#endif
}();
@@ -1422,9 +1422,9 @@
#if BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_ARM64)
return "0c3448974a4e8da2395da917935e5de1";
#elif BUILDFLAG(IS_APPLE) && !defined(ARCH_CPU_ARM64)
- return "57a0fb3fba33e17de26bcde4c40b9a75";
+ return "5d449d36926c9f212c6cdb6c276d18cc";
#else
- return "1c4198c38f890c208c5cbaad57be4dc6";
+ return "a9532f555aca2fd099e2107fa40b61e6";
#endif
}();
const char* md5_modified_text = []() {
@@ -1433,9 +1433,9 @@
#if BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_ARM64)
return "9cf1c024a9d2d356bcdd14cb71a32324";
#elif BUILDFLAG(IS_APPLE) && !defined(ARCH_CPU_ARM64)
- return "072574999f2e3f36774ee0b5bc94d4dd";
+ return "8c992808db99dbe3d74006358a671f05";
#else
- return "cfa78d01406865f41f486bd34a8b9f7b";
+ return "03cae68322d6a6ba120e738ab325408c";
#endif
}();
@@ -1569,9 +1569,9 @@
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "2b9078043cd6130fef4e8542dcda943e";
#if BUILDFLAG(IS_APPLE)
- return "cd90315b250dfe08265ce0ac335c5f76";
+ return "52e93c54796f7f7167edf64e81d12bd7";
#else
- return "c4fb6911f2a87f490be196f8898de738";
+ return "5143f9a98beb7b00ff40b89110a1089f";
#endif
}();
diff --git a/testing/embedder_test_constants.cpp b/testing/embedder_test_constants.cpp
index ac2a667..9e8caee 100644
--- a/testing/embedder_test_constants.cpp
+++ b/testing/embedder_test_constants.cpp
@@ -13,9 +13,9 @@
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
return "a31381406d0b95049e418720750b78dd";
#if BUILDFLAG(IS_APPLE)
- return "d243b5d64752be0f45b86df7bd2e2708";
+ return "0521eaa52fe2aa43aafd3e4495f63f0b";
#else
- return "cdde6c161679ab10b07c38c1ef04b7e8";
+ return "5f19ddad9d48f5b7b87ee7d92f577db6";
#endif
}