Catch circular references in /Form XObjects (issue 19800)#19803
Catch circular references in /Form XObjects (issue 19800)#19803Snuffleupagus merged 2 commits intomozilla:masterfrom
Conversation
900fb56 to
0abfefd
Compare
|
/botio test |
0abfefd to
f0b3cc2
Compare
|
/botio unittest |
From: Bot.io (Linux m4)ReceivedCommand cmd_unittest from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.241.84.105:8877/89298a43847ddc1/output.txt |
From: Bot.io (Windows)ReceivedCommand cmd_unittest from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.193.163.58:8877/cc049feae29da96/output.txt |
From: Bot.io (Linux m4)SuccessFull output at http://54.241.84.105:8877/89298a43847ddc1/output.txt Total script time: 2.32 mins
|
From: Bot.io (Windows)SuccessFull output at http://54.193.163.58:8877/cc049feae29da96/output.txt Total script time: 7.72 mins
|
|
/botio browsertest |
From: Bot.io (Windows)ReceivedCommand cmd_browsertest from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.193.163.58:8877/fcd49388a19e6bb/output.txt |
From: Bot.io (Linux m4)ReceivedCommand cmd_browsertest from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.241.84.105:8877/6f41904794a612d/output.txt |
From: Bot.io (Linux m4)FailedFull output at http://54.241.84.105:8877/6f41904794a612d/output.txt Total script time: 16.50 mins
Image differences available at: http://54.241.84.105:8877/6f41904794a612d/reftest-analyzer.html#web=eq.log |
From: Bot.io (Windows)FailedFull output at http://54.193.163.58:8877/fcd49388a19e6bb/output.txt Total script time: 29.52 mins
Image differences available at: http://54.193.163.58:8877/fcd49388a19e6bb/reftest-analyzer.html#web=eq.log |
|
Would you know why we have the same "failing" ref test on both bots ? |
As far as I can tell that would be caused by using another /Resources dictionary now, i.e. the "correct" one courtesy of the first patch (needed to address a circular dependency), which has a slightly different /SMask-entry. |
In rare cases /Resources are also found in the /Contents stream-dict, in addition to in the /Page dict, hence we need to prefer those when available; see `issue18894.pdf`.
For simplicity we will abort /Form XObject parsing *immediately* when encountering a circular reference, rather than letting it continue up until some limit (as e.g. PDFium appears to do), which should be fine since there are never any guarantees if/how *corrupt* PDF documents will render.
f0b3cc2 to
1048508
Compare
|
/botio makeref |
From: Bot.io (Linux m4)ReceivedCommand cmd_makeref from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.241.84.105:8877/12de9aa9d394b8b/output.txt |
From: Bot.io (Windows)ReceivedCommand cmd_makeref from @Snuffleupagus received. Current queue size: 0 Live output at: http://54.193.163.58:8877/f7d2c76915bc117/output.txt |
From: Bot.io (Linux m4)SuccessFull output at http://54.241.84.105:8877/12de9aa9d394b8b/output.txt Total script time: 16.11 mins
|
From: Bot.io (Windows)SuccessFull output at http://54.193.163.58:8877/f7d2c76915bc117/output.txt Total script time: 29.68 mins
|
For simplicity we will abort /Form XObject parsing immediately when encountering a circular reference, rather than letting it continue up until some limit (as e.g. PDFium appears to do), which should be fine since there are never any guarantees if/how corrupt PDF documents will render.