From: John H. <jo...@gl...> - 2017-06-11 08:24:34
|
Debian has a package called libagg-dev that installs libagg.a and all of the headers for AGG 2.5. This package is orphaned and I am thinking of taking it over and updating it to AGG 2.4 from SourceForge. Unless we update AGG 2.4 to 2.6 I will have to create a fictitious Debian version like 2.5.4.117 to represent AGG 2.4-r117. I am attaching some patches to AGG 2.4 that come from Debian and Ubuntu: -- agg24debiancrashfix.diff fixes a crash that happens when drawing really long lines triggers signed integer overflow in agg_rasterizer_cells_aa. Debian uses a patch that detects if overflow is likely and doesn't draw the line. I have replaced it with a patch that uses 64-bit math in a few places where 32-bit integer math isn't correct. -- agg24debianfailtobuildfix.diff fixes a build failure on some systems using clang -- agg24noUB.diff eliminates another place where signed overflow could result in undefined behavior. The patch shouldn't effect code generation but it may inhibit unsafe compiler optimizations. -- agg24No32bitIntAssumption.diff I noticed that AGG is littered with the constant 0x7FFFFFFF, INT_MAX for 32-bit integers. This patch replaces all of them with the INT_MAX/INT_MIN macros. -- agg24unusedparams.diff This is a patch from my personal copy of AGG. It just silences some unused parameter warnings. I have applied all of these patches and then built and run all of the examples. Everything seemed to be OK. -- john |