parent
							
								
									6c915ec411
								
							
						
					
					
						commit
						ae81195dba
					
				
							
								
								
									
										47
									
								
								poppler-0.63.0-tiling-patterns.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								poppler-0.63.0-tiling-patterns.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | ||||
| From 718d428984e3a84fda521c0f5e6d975c7390af2b Mon Sep 17 00:00:00 2001 | ||||
| From: Marek Kasik <mkasik@redhat.com> | ||||
| Date: Fri, 6 Apr 2018 15:06:46 +0200 | ||||
| Subject: [PATCH] cairo: Fix tiling patterns when pattern cell is too far | ||||
| 
 | ||||
| Rendering of tiling pattern which has pattern matrix moving pattern cell | ||||
| far away can fail on allocation of memory. This commit solves the issue by | ||||
| modifying of cairo pattern matrix so that its offset is closer to the path | ||||
| filled by the pattern. | ||||
| 
 | ||||
| https://bugs.freedesktop.org/show_bug.cgi?id=105905 | ||||
| ---
 | ||||
|  poppler/CairoOutputDev.cc | 11 +++++++++++ | ||||
|  1 file changed, 11 insertions(+) | ||||
| 
 | ||||
| diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc
 | ||||
| index 631ab27b..b2e730bf 100644
 | ||||
| --- a/poppler/CairoOutputDev.cc
 | ||||
| +++ b/poppler/CairoOutputDev.cc
 | ||||
| @@ -915,6 +915,8 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat
 | ||||
|    StrokePathClip *strokePathTmp; | ||||
|    GBool adjusted_stroke_width_tmp; | ||||
|    cairo_pattern_t *maskTmp; | ||||
| +  double xoffset, yoffset;
 | ||||
| +  double det;
 | ||||
|   | ||||
|    width = bbox[2] - bbox[0]; | ||||
|    height = bbox[3] - bbox[1]; | ||||
| @@ -976,6 +978,15 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat
 | ||||
|    if (cairo_pattern_status (pattern)) | ||||
|      return gFalse; | ||||
|   | ||||
| +  det = pmat[0] * pmat[3] - pmat[1] * pmat[2];
 | ||||
| +  if (fabs(det) < 0.000001)
 | ||||
| +    return gFalse;
 | ||||
| +
 | ||||
| +  xoffset = round ((pmat[3] * pmat[4] - pmat[2] * pmat[5]) / (xStep * det));
 | ||||
| +  yoffset = - round ((pmat[1] * pmat[4] - pmat[0] * pmat[5]) / (yStep * det));
 | ||||
| +  pattern_matrix.x0 -= xoffset * pattern_matrix.xx * xStep + yoffset * pattern_matrix.xy * yStep;
 | ||||
| +  pattern_matrix.y0 -= xoffset * pattern_matrix.yx * xStep + yoffset * pattern_matrix.yy * yStep;
 | ||||
| +
 | ||||
|    state->getUserClipBBox(&xMin, &yMin, &xMax, &yMax); | ||||
|    cairo_rectangle (cairo, xMin, yMin, xMax - xMin, yMax - yMin); | ||||
|   | ||||
| -- 
 | ||||
| 2.14.3 | ||||
| 
 | ||||
| @ -4,7 +4,7 @@ | ||||
| Summary: PDF rendering library | ||||
| Name:    poppler | ||||
| Version: 0.63.0 | ||||
| Release: 7%{?dist} | ||||
| Release: 8%{?dist} | ||||
| License: (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+ and MIT | ||||
| URL:     http://poppler.freedesktop.org/ | ||||
| Source0: http://poppler.freedesktop.org/poppler-%{version}.tar.xz | ||||
| @ -23,6 +23,9 @@ Patch4:  poppler-0.63.0-python3.patch | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1602838 | ||||
| Patch5:  poppler-0.63.0-negative-object-number.patch | ||||
| 
 | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1557355 | ||||
| Patch6:  poppler-0.63.0-tiling-patterns.patch | ||||
| 
 | ||||
| BuildRequires: cmake | ||||
| BuildRequires: gcc-c++ | ||||
| BuildRequires: gettext-devel | ||||
| @ -253,6 +256,10 @@ test "$(pkg-config --modversion poppler-splash)" = "%{version}" | ||||
| %{_mandir}/man1/* | ||||
| 
 | ||||
| %changelog | ||||
| * Tue Aug  7 2018 Marek Kasik <mkasik@redhat.com> - 0.63.0-8 | ||||
| - Fix tiling patterns when pattern cell is too far | ||||
| - Resolves: #1557355 | ||||
| 
 | ||||
| * Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 0.63.0-7 | ||||
| - Rebuild with fixed binutils | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user