{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":261718588,"defaultBranch":"master","name":"ghostpdl","ownerLogin":"ArtifexSoftware","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-05-06T09:56:06.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13031723?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1709640100.0","currentOid":""},"activityList":{"items":[{"before":"e4c276677b423732a3e4bb7fd6feffd91c482d1a","after":"5fb7114f814645ebf679a8228350e9770bf3f009","ref":"refs/heads/master","pushedAt":"2024-04-10T17:02:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"graphics library - clean up tile clipper device on initialisation error\n\nOSS-fuzz bug #67932\n\nThis turns out to be another case like Bug #705722 and I've opted to fix\nit in exactly the same way. I've also scanned the other cases where\ntile_fill_init() is used, and fixed those too.\n\nQuoting the text from commit a003e870a11d13659666311e8b3059ba9fda3651\n\n-----------------------------------------------------------------------\nIf initialisation for tile filling fails, make sure to cleanup the tile\nclipper device if it was setup. The reason being that clipper device forwards\ndrawing operations to a memory device, embedded in itself (i.e. not a separate\nmemory allocation just for the memory device).\n\nThis means if the clipper device (with its target set to that internal memory\ndevice) persists until a gc run occurs, when the garbager attempts to reloc the\nclipper's target pointer, it will access adjacent values in device structure,\nnot the memory manager header it expects. Thus it will reloc to a nonsensical\nlocation, and ultimately, will crash.","shortMessageHtmlLink":"graphics library - clean up tile clipper device on initialisation error"}},{"before":"7979110266100ad1b62cac45995df9c6e653761d","after":"e4c276677b423732a3e4bb7fd6feffd91c482d1a","ref":"refs/heads/master","pushedAt":"2024-04-05T15:01:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Update bmpcmp to expect RGBT as RGBT rather than TRGB.\n\nIn the recent commit in which I changed bitrgbtags to produce\nRGBT rather than TRGB, I stated that bmpcmp had expected it\nthis way. Turns out I was wrong, and bmpcmp was correctly looking\nfor TRGB.\n\nBUT... RGBT makes much more sense, so update bmpcmp to match the\nnew bitrgbtags rather than reverting.","shortMessageHtmlLink":"Update bmpcmp to expect RGBT as RGBT rather than TRGB."}},{"before":"e023b080b164d09c6ff53ab8a060cf39632b0553","after":"7979110266100ad1b62cac45995df9c6e653761d","ref":"refs/heads/master","pushedAt":"2024-04-04T15:01:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Tweak byte ordering in output from bitrgbtags device.\n\nInternally, the bitrgbtags device 'encode_color's as 0xTTRRGGBB\n(which is sane, as the bitrgb device in 8 bit mode encodes them\nas 0xRRGGBB).\n\nThis means that gs renders these into 32bit chunky memory devices.\nBeing gs, this means that these are in big endian format, meaning\nthat the order in memory is TT RR GG BB.\n\nThis is NOT the order we'd expect in the output (bmpcmp gets this\nwrong, for one). Given that we are outputting using a modified\nPAM format with a TUPL of RGB_TAG, we'd expect RR GG BB TT.\n\nAccordingly, we reorder the bytes before writing here. We don't\nbelieve these devices are actually being used by anyone other than\npossibly for testing, not least because they are completely\nundocumented.","shortMessageHtmlLink":"Tweak byte ordering in output from bitrgbtags device."}},{"before":"a0a180a46ffc16101d96d3fe0af6bbf8949ec620","after":"e023b080b164d09c6ff53ab8a060cf39632b0553","ref":"refs/heads/master","pushedAt":"2024-04-04T14:01:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - fix negative Form BBox to clip calculation\n\nBug #707718 \"Forms with BBox entirely negative are clipped incorrectly.\"\n\nAs the bug says. The problem is caused because the calculation didn't\noriginally anticipate both x or both y co-ordinates being less than\nzero. This meant that we could incorrectly use the less negative value\nas the minimum x or y for the clip, causing content to vanish.","shortMessageHtmlLink":"pdfwrite - fix negative Form BBox to clip calculation"}},{"before":"e0420756751ab524e87e9bba01ec11bf375f33c3","after":"a0a180a46ffc16101d96d3fe0af6bbf8949ec620","ref":"refs/heads/master","pushedAt":"2024-04-03T17:01:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Simplify logic in pdf14_initialize_ctx.","shortMessageHtmlLink":"Simplify logic in pdf14_initialize_ctx."}},{"before":"33c55627ccb81df23a14e21d02e7f58a64c49de7","after":"e0420756751ab524e87e9bba01ec11bf375f33c3","ref":"refs/heads/master","pushedAt":"2024-04-03T15:01:44.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Remove n_chan member from pdf14_ctx_s.\n\nWe set it, but never use it, so just remove it.","shortMessageHtmlLink":"Remove n_chan member from pdf14_ctx_s."}},{"before":"f8e659bd165bccc8679c96f542e3ea46475cd26a","after":"33c55627ccb81df23a14e21d02e7f58a64c49de7","ref":"refs/heads/master","pushedAt":"2024-04-02T12:01:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Rejig tags slightly.\n\nWe have a device structure member, graphics_type_tag, that we use to\nhold the current tag. We use a bit in this indicate that the device\nactually uses tags at all. This bit is never actually written to the\ntags plane.\n\nGiven we only ever use 8 or 16 bits for the tag plane, why do we then\nwaste a bit using one of those for GS_DEVICE_ENCODES_TAGS ?\n\nHere, we move GS_DEVICE_ENCODES_TAGS up to the 31st bit. This frees\nanother bit lower down for use with real tag values.\n\nAlso, we introduce an inline function, device_current_tag, to extract\nthe current tag. By using this, together with the existing function,\ndevice_encodes_tags, we can restrict the use of GS_DEVICE_ENCODES_TAGS\nwithin the broader code.","shortMessageHtmlLink":"Rejig tags slightly."}},{"before":"98d6fa2640dd9d9e59bd4b242a8b0b3f78a92d6b","after":"f8e659bd165bccc8679c96f542e3ea46475cd26a","ref":"refs/heads/master","pushedAt":"2024-04-02T09:01:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Devices - use proper function to determine if SAFER is active\n\nNo bug for this one. Robin noticed on my original commit to prevent\ndevice switching with SAFER that I was probing the context directly\nwhen there is a function to return the SAFER status that we should use\ninstead.\n\nThere turn out to be several other places where we were already doing\nthe same thing (I had copied the code from elsewhere...), so this commit\nalters those to use the function instead.","shortMessageHtmlLink":"Devices - use proper function to determine if SAFER is active"}},{"before":"65ab8b7fae7aac700a4f4b1ca64221a02d960dad","after":"98d6fa2640dd9d9e59bd4b242a8b0b3f78a92d6b","ref":"refs/heads/master","pushedAt":"2024-04-01T18:01:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707709: Fix overprinting not setting tags.\n\nWhen overprinting with tags, ensure that we set the tag plane\ncorrectly.","shortMessageHtmlLink":"Bug 707709: Fix overprinting not setting tags."}},{"before":"4f034835e38d4ce1042ef2100f8f1764141362e3","after":"65ab8b7fae7aac700a4f4b1ca64221a02d960dad","ref":"refs/heads/master","pushedAt":"2024-04-01T11:01:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"PDF interpreter - fix type 5 halftones\n\nBug #707631 \"Problems with PreserveHalftoneInfo\"\n\nThe problem is not with pdfwrite preserving halftones, but with the PDF\ninterpreter executing type 5 halftones.\n\nThis commit is based on the patch supplied by Alex in the bug report;\nunfortunately that simple fix, while it does resolve the crash, leads to\nmany regressions in the test suite. It also deliberately doesn't\naddress the fact that the return value from gs_sethalftone_prepare() was\nunchecked in several places.\n\nHere we adopt Alex's patch, add the checks on the return value from\ngs_sethalftone_prepare, but also correctly set up the identity transfer\nfunction initially. The regressions were caused by the fact that the\ndefault implementation essentially assumed a transfer function existed\nand could map colour values incorrectly if one didn't.","shortMessageHtmlLink":"PDF interpreter - fix type 5 halftones"}},{"before":"e63eaac318cfb8bcfe3b6711b2f227a1a5ac39cf","after":"4f034835e38d4ce1042ef2100f8f1764141362e3","ref":"refs/heads/master","pushedAt":"2024-03-27T23:01:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707688: Fix rendering issue with psdcmyk16.\n\nThe depth value in the device is a ushort. The pdf14 code was\nstashing it, and then restoring it later, but only using a byte.\n16 spots * 16 bits requires a depth of 256, which doesn't fit\nin a byte, hence 'bad things'.\n\nThe fix is simply to stash it in a ushort to match the device.","shortMessageHtmlLink":"Bug 707688: Fix rendering issue with psdcmyk16."}},{"before":"16ec7181eef2a924ec80877c2fbf3e0e575cc197","after":"e63eaac318cfb8bcfe3b6711b2f227a1a5ac39cf","ref":"refs/heads/master","pushedAt":"2024-03-27T15:02:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Further improve the ZUGFeRD helper program\n\nBug #707694 \"lib/zugferd.ps doesn't fill Length and ModDate\"\n\nFollowing further feedback from Thorsten Engel in the bug report, add\na /Size key to the Params sub-dictionary of the XML stream and find\nit's value from the size of the file. Add an option to supply the\nModDate value for the Params sub-dictionary instead of using a dummy\nvalue.","shortMessageHtmlLink":"Further improve the ZUGFeRD helper program"}},{"before":"bdfb380769785e082d59dea6e958f3cb45a7eafa","after":"16ec7181eef2a924ec80877c2fbf3e0e575cc197","ref":"refs/heads/master","pushedAt":"2024-03-27T09:02:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Fix typo in script comment\n\nBug #707679 \"typo in lib/pdf2dsc comment\"","shortMessageHtmlLink":"Fix typo in script comment"}},{"before":"44d802a65d6b74d98f5d984a1877176e1305e3a0","after":"bdfb380769785e082d59dea6e958f3cb45a7eafa","ref":"refs/heads/master","pushedAt":"2024-03-26T16:01:55.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Add registry keys for legacy ImageMagick compatibility","shortMessageHtmlLink":"Add registry keys for legacy ImageMagick compatibility"}},{"before":"ae75d2507aa3d22f9c8f4010f3ee9db7f8713c86","after":"44d802a65d6b74d98f5d984a1877176e1305e3a0","ref":"refs/heads/master","pushedAt":"2024-03-25T15:02:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pxlcolor - emit zero sized clip rectangles\n\nBug #707687 \"pxlcolor device fails to clip content\"\n\nCommit 4df181c0f8323b84239cb46535494835931994b4 adds clipping to the\nxpswrite device, and also dropped empty (singlusar) clip rectangles.\n\nIt seems that doing this causes the vector device to draw images that\nshould be clipped out, because the emoty clip is not written to the\nfile. This only seems to cause a problem with the pxlcolor device,\npossibly because other high level devices don't rely on the vector\ndevice to do this work.\n\nThe simple solution is to write out the empty clip paths as we did\nbefore.","shortMessageHtmlLink":"pxlcolor - emit zero sized clip rectangles"}},{"before":"6c4585f57723dbb8db21cfec527b63910e1c89b5","after":"ae75d2507aa3d22f9c8f4010f3ee9db7f8713c86","ref":"refs/heads/master","pushedAt":"2024-03-19T12:01:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Bug 707667: Handle TTF with only platform 0 cmap tables\n\nPDF requires embedded TrueType fonts to use the 3,1 (Windows Unicode), 3,0\n(Windows Symbol) or 1,0 (Macintosh) cmap table.\n\nThe font in this files contains only one cmap table, and it is a 0,1 (Unicode\n1.1 semantics - deprecated) cmap.\n\nTechnically invalid, but other consumers accept it.\n\nSince it is Unicode, treat it the same as the 3,1 cmap (may not work as expected\nin all cases).","shortMessageHtmlLink":"Bug 707667: Handle TTF with only platform 0 cmap tables"}},{"before":"e57b1ffd95e189fedc68b2e235967dec649c20c3","after":"6c4585f57723dbb8db21cfec527b63910e1c89b5","ref":"refs/heads/master","pushedAt":"2024-03-18T13:01:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - avoid an error rendering a shading to an image\n\nFollowing on from commit e57b1ffd95e189fedc68b2e235967dec649c20c3 which\ncorrected error handling when the image converter setup fails.\n\nWe'd prefer not to get an error at all, because that flags worrying\nmessages to the user. So here, if sx or sy are less than zero, which I\nthink indicates the shading is off the media, simply ignore the shading\naltogether.","shortMessageHtmlLink":"pdfwrite - avoid an error rendering a shading to an image"}},{"before":"006003ba6d08779fa5dbcf754f3d4bd6a3244504","after":"e57b1ffd95e189fedc68b2e235967dec649c20c3","ref":"refs/heads/master","pushedAt":"2024-03-15T20:01:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - properly handle error condition with shading rendering\n\nNo bug report, this is from a file supplied by a customer. The PDF file\nhas numerous (> 2500) shadings, defined in CMYK space which are\ndegenerate but drawn radically off the media. When run through pdfwrite\nwith ColorConversionStrategy=/RGB this crashes.\n\nThe reason is that the masked image converter which is used to render the\nshadings into an image doesn't like the fact that the content is\nentirely off the media and returns an error. The pdfwrite code spots\nthe error, but there's a logic mistake in the flow of control which\ntries to remove the masked image converter, which is not possible\nbecause we failed to install it, and leads to a crash.\n\nThis commit fixes the flow of control so that if we get an error\ninstalling the converter, we don't try and remove it.","shortMessageHtmlLink":"pdfwrite - properly handle error condition with shading rendering"}},{"before":"12901114a54f70d766e78c29344a885435505106","after":"006003ba6d08779fa5dbcf754f3d4bd6a3244504","ref":"refs/heads/master","pushedAt":"2024-03-15T14:02:16.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Rename pdfi_stream_to_dict() to pdfi_get_stream_dict()","shortMessageHtmlLink":"Rename pdfi_stream_to_dict() to pdfi_get_stream_dict()"}},{"before":"577ca904bd1dea00fefa7a4f9173d26a8e901487","after":"12901114a54f70d766e78c29344a885435505106","ref":"refs/heads/master","pushedAt":"2024-03-14T18:02:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"PDF interpreter - remove a spurious dictionary\n\nBug #707660 \" Crash rendering landscape PDF to PNG\"\n\nThe title s wrong, it isn't a crash at all. The problem is that the\nreporter is using PDFFitPage with a pahe which is landscape and does\nnot have a /Rotate key of any kind.\n\nThis inadvertantly leaves a copied dictionary on the stack, which then\nleads to a typecheck error.\n\nRemove the dictionary.","shortMessageHtmlLink":"PDF interpreter - remove a spurious dictionary"}},{"before":"e12b8487283979ab454a32888a3c37d4d9492480","after":"577ca904bd1dea00fefa7a4f9173d26a8e901487","ref":"refs/heads/master","pushedAt":"2024-03-14T16:02:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - disable XRefStm when writing Linearized files (FastWebView)\n\nBug #707653 \"-dFastWebView=true does not work anymore\"\n\nI'd disabled ObjStm usage, but I missed that we need to disable XRefStm\nuse as well, when writing linearised files.\n\nWhile I'm messing with this anyway; alter the handling so that we\ndetect whether the user has specifically selected WriteXRefStm and\nWriteObjStms or not. If they have not been specifically requested and\nare not compatible, silently disable them. If they have been\nspecifically enabled, and are not compatible with other settings, warn\nthe user and disable them anyway.","shortMessageHtmlLink":"pdfwrite - disable XRefStm when writing Linearized files (FastWebView)"}},{"before":"b4b3cc856894ea38d75e94938e474e614bf69cb2","after":"e12b8487283979ab454a32888a3c37d4d9492480","ref":"refs/heads/master","pushedAt":"2024-03-14T14:01:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - more improvements for mesh shadings\n\nBug #707655 \"No output visible with pdfwriter\"\n\ncommit 3d6e3acbcda79a0096cd1ad73c7b9b1101a43187 to fix bug #06852\nunfortunately led to this regression. The problem is related to the\nscaling of co-ordinates performed when a mesh shading has vertex\nco-ordinates which are too large for Acrobat 5 (PDF 1.4).\n\nAcrobat 5 has a limit of =/-32767 on real numbers, which applies to the\n/Decode array of a mesh shading. Because this is an Acrobat limit, not a\nlimit of the PDF specification we would ordinarily ignore it, but the\nPDF/A-1 specification chose to carry the Acrobat limitations into the\nPDF/A spec.\n\nThis commit fixes the problem by correctly scaling the co-ordinate\nvalues to the Decode array values when outputting to PDF 1.4 or less,\neven if no actual co-ordinte scaling is required, and modifying the\n/Matrix of the Pattern to scale up the Decode values to the real\nco-ordinates. Crucially we must not scale the Tx and Ty values of the\nCTM.","shortMessageHtmlLink":"pdfwrite - more improvements for mesh shadings"}},{"before":"590626ae42ac1c1c288ea7558040d8f91a1b8d0d","after":"b4b3cc856894ea38d75e94938e474e614bf69cb2","ref":"refs/heads/master","pushedAt":"2024-03-12T12:02:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Improve commit 13eb1f59280aed094eec8e21ca76e5b50d9bb6a0\n\nthe planes 'depth' member can be 0, we need to guard against that\nbefore using it as a divisor.","shortMessageHtmlLink":"Improve commit 13eb1f5"}},{"before":"0c6b26e8c713fba6eb7129f778983dca491d80dd","after":"590626ae42ac1c1c288ea7558040d8f91a1b8d0d","ref":"refs/heads/master","pushedAt":"2024-03-11T16:01:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Sacrifical test commit\n\nwhite space change to test readthedocs hook in git","shortMessageHtmlLink":"Sacrifical test commit"}},{"before":"ae8b73159e30c4624be741a1d1196152164f8bc3","after":"0c6b26e8c713fba6eb7129f778983dca491d80dd","ref":"refs/heads/master","pushedAt":"2024-03-07T14:01:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - drop unused named objects from the xref & fix xrefs\n\nNoticed while working on something else entirely. If we get an error\nwhile handling an annotation after we've created a named dictionary we\nfreed the dictionary, but that still left a slot allocated for it when\nwe wrote out the xref.\n\nThis has two undesirable consequences; firstly we are writing xref\nentries we don't need to which makes th file larger, and secondly the\noffset we were writing was past the end of the file. This doesn't\nactually matter because nothing should reference these objects from the\nxref (the objects don't exist) but it's technically wrong.\n\nSo if an annotation fails, and we've allocated a named dictionary,\nremove the named dictionary from the xref.\n\nThis then highlighted a different problem with writing xref sections\nwith both normal xref tables and XRef xtreams. We weren't properly\nskipping empty sections.","shortMessageHtmlLink":"pdfwrite - drop unused named objects from the xref & fix xrefs"}},{"before":"30df858992d2755a43fba01ab1f97b13cd9640b5","after":"ae8b73159e30c4624be741a1d1196152164f8bc3","ref":"refs/heads/master","pushedAt":"2024-03-07T13:02:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Tweak the pdfi orig_FontType to use ft_undefined\n\n.. instead of -1","shortMessageHtmlLink":"Tweak the pdfi orig_FontType to use ft_undefined"}},{"before":"5feeb0845d6b88aca41fad3c524ffad407c490f8","after":"30df858992d2755a43fba01ab1f97b13cd9640b5","ref":"refs/heads/master","pushedAt":"2024-03-06T11:02:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"pdfwrite - preserve original non-embedded font Subtype\n\nExtra work for Bug #707578. Building on Chris's commit\n7d3e88528a466ca81df4196db5322da9aab16667 and following on from the\nwork in commits 99b48f1992844e30ab4b05dbb2764ba99f7b66f4 and\nfd14cd681da01783ae8df0fc71e653cc2c218cec.\n\nWe now do not embed a substittue font in a PDF otuptu file if the input\nwas PDF, and the input PDF file did not have the font embedded in it.\nWe now additionally preserve the Subtype of the original font, this is\nuseful for mapping glyphs correctly (or at least, consistently!) with\nthe original PDF file.\n\nThis shows a difference with the file for bug 707578; if we render the\nnew PDF file with a FONTPATH or fontmap.GS which includes TrueType\nsubstitutions for the non-embedded fonts. Previously we altered the\nfont /Subtype to type 1 (our substituted font) which rendered the wrong\nglyphs if we substituted a TrueType font when rendering. Now we\ndraw the correct glyphs, the same glyphs as when rendering the original\nfile.","shortMessageHtmlLink":"pdfwrite - preserve original non-embedded font Subtype"}},{"before":"73c5c2147ef7cf001525315404f9775bd26dbc12","after":"53ac31425e2adc4ae2ba663212b2a6ebc13c9163","ref":"refs/heads/gs10.03.0","pushedAt":"2024-03-06T09:01:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Dates and News.html for 10.03.0 release","shortMessageHtmlLink":"Dates and News.html for 10.03.0 release"}},{"before":"0773fc3bf8e061889509899ccbcf18a84c7bbb6d","after":"73c5c2147ef7cf001525315404f9775bd26dbc12","ref":"refs/heads/gs10.03.0","pushedAt":"2024-03-05T12:01:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Store correct VM mode during halftone sampling\n\nCommit 9e2baefb38ba30b5603bb5280e55d45753531096 ensures we use a consistent\nVM mode (global/local) through the sampling of the halftone function sampling.\n\nBut the mode stored on the exec stack, to reset when sampling was complete,\nwas the VM mode used for sampling, rather than the current mode when sampling\nstarted.\n\nCaused an invalidaccess error with:\n\n-sDEVICE=pkmraw -r72 -o stuff%03d.pkm ../../tests_private/comparefiles/Bug690683.ps","shortMessageHtmlLink":"Store correct VM mode during halftone sampling"}},{"before":"7d3e88528a466ca81df4196db5322da9aab16667","after":"5feeb0845d6b88aca41fad3c524ffad407c490f8","ref":"refs/heads/master","pushedAt":"2024-03-05T12:01:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"chris-liddell","name":null,"path":"/chris-liddell","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11627080?s=80&v=4"},"commit":{"message":"Store correct VM mode during halftone sampling\n\nCommit 9e2baefb38ba30b5603bb5280e55d45753531096 ensures we use a consistent\nVM mode (global/local) through the sampling of the halftone function sampling.\n\nBut the mode stored on the exec stack, to reset when sampling was complete,\nwas the VM mode used for sampling, rather than the current mode when sampling\nstarted.\n\nCaused an invalidaccess error with:\n\n-sDEVICE=pkmraw -r72 -o stuff%03d.pkm ../../tests_private/comparefiles/Bug690683.ps","shortMessageHtmlLink":"Store correct VM mode during halftone sampling"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAELUnusgA","startCursor":null,"endCursor":null}},"title":"Activity ยท ArtifexSoftware/ghostpdl"}