From 85fec0c0fc185b69e52a04e366d68de85cae5812 Mon Sep 17 00:00:00 2001 From: Samuel Gomes Date: Wed, 29 Nov 2023 23:34:27 +0530 Subject: [PATCH] Fix infinite loop issue when duration is zero --- InForm/extensions/GIFPlay.bas | 4 ++-- examples/GIFPlaySample/fire.gif | Bin 0 -> 21280 bytes examples/GIFPlaySample/gifgrid.gif | Bin 0 -> 926 bytes examples/GIFPlaySample/porsche.gif | Bin 0 -> 6144 bytes examples/GIFPlaySample/solid2.gif | Bin 0 -> 18599 bytes examples/GIFPlaySample/treescap-interlaced.gif | Bin 0 -> 411 bytes examples/GIFPlaySample/treescap.gif | Bin 0 -> 407 bytes examples/GIFPlaySample/wedge.gif | Bin 0 -> 15317 bytes examples/GIFPlaySample/welcome2.gif | Bin 0 -> 36832 bytes examples/GIFPlaySample/x-trans.gif | Bin 0 -> 1113 bytes 10 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 examples/GIFPlaySample/fire.gif create mode 100644 examples/GIFPlaySample/gifgrid.gif create mode 100644 examples/GIFPlaySample/porsche.gif create mode 100644 examples/GIFPlaySample/solid2.gif create mode 100644 examples/GIFPlaySample/treescap-interlaced.gif create mode 100644 examples/GIFPlaySample/treescap.gif create mode 100644 examples/GIFPlaySample/wedge.gif create mode 100644 examples/GIFPlaySample/welcome2.gif create mode 100644 examples/GIFPlaySample/x-trans.gif diff --git a/InForm/extensions/GIFPlay.bas b/InForm/extensions/GIFPlay.bas index 2762122..e34d4a5 100644 --- a/InForm/extensions/GIFPlay.bas +++ b/InForm/extensions/GIFPlay.bas @@ -621,7 +621,6 @@ $IF GIFPLAY_BAS = UNDEFINED THEN rawFrame.globalPalette = STRING$(768, 0) rawFrame.localPalette = STRING$(768, 0) rawFrame.transparentColor = -1 ' no transparent color - rawFrame.duration = 10 ' 0.1 seconds if no duration is specified (this behavior is from the erstwhile GIFPlay library) ' Global color table? IF _READBIT(i, 7) THEN rawFrame.globalColors = _SHL(1, ((i AND 7) + 1)) @@ -715,6 +714,7 @@ $IF GIFPLAY_BAS = UNDEFINED THEN END IF __GIFPlay(idx).lastFrame = frameIdx ' make the last frame to point to this __GIFPlayFrame(frameIdx).disposalMethod = rawFrame.disposalMethod + IF rawFrame.duration = 0 THEN rawFrame.duration = 10 ' 0.1 seconds if no duration is specified (this behavior is from the erstwhile GIFPlay library) __GIFPlayFrame(frameIdx).duration = rawFrame.duration * 10 ' convert to ticks (ms) __GIFPlay(idx).duration = __GIFPlay(idx).duration + __GIFPlayFrame(frameIdx).duration ' add the frame duration to the global duration __GIFPlay(idx).frameCount = __GIFPlay(idx).frameCount + 1 @@ -724,7 +724,7 @@ $IF GIFPLAY_BAS = UNDEFINED THEN rawFrame.localPalette = STRING$(768, 0) rawFrame.disposalMethod = 0 rawFrame.transparentColor = -1 ' no transparent color - rawFrame.duration = 10 ' 0.1 seconds if no duration is specified (this behavior is from the erstwhile GIFPlay library) + rawFrame.duration = 0 CASE &H21 ' extension introducer DIM j AS _UNSIGNED _BYTE: j = StringFile_ReadByte(sf) ' extension type diff --git a/examples/GIFPlaySample/fire.gif b/examples/GIFPlaySample/fire.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9265fa3b39fded4f9f4f0ad408fbca36b1face1 GIT binary patch literal 21280 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 I$=>1ge{$0RE&u=k literal 0 HcmV?d00001 diff --git a/examples/GIFPlaySample/gifgrid.gif b/examples/GIFPlaySample/gifgrid.gif new file mode 100644 index 0000000000000000000000000000000000000000..777c267bdbc6776eddef4ce88a1d9068d68a66e4 GIT binary patch literal 926 zcmV;P17Z9}Nk%w1VPpVg0HOc@rLv_25v8RO1poj4{{R300RI3000000A^8LV00000 zEC2ui0Av7U000C3D7xJKFt$Ley*TTA1^M8ogyBev-bt9J5EO6>Q?g9g^NSZZ9;7WG zi8U0Kj3C#Jr}H&yJ?PVhM5$I)?3GxW#-cWFZVCQoxyiG7D`t}0Vg;HdIMT3Eab9|47RE&#vid~XlkcNK}o}Zu#9HXSA7NMxA6Q-=Kr<6yq zX>6HtoVQSyvzD?Vn~0IYKDv30#zVhhwQhgCTD;IL$(qY?JjBn(v5vUP!ob7Mc-fWG z)zh}Q;@IO#-`?HS&C%uc+ve}`@#$2m{-Le{vie8RlfZ+c*eRrykDoqp>ge6Gw+r7s zW*4o|kyw%cVliarLeA6HaiYm2=rBTr7m?)0lP^(<%m`;8$C$omu6#J@COMctWj0jF zvZ$GLNV)BF$dss=f>0eGoSGr(0{~dFYTe4Ut5>a5t0rv$V1U`PX0f70t9EVLvTg?e zNU6~#*|>7yx^25x@7lRKd%6rN!Y^CHXZij`oR)6Qu|pW=#jE%*WygsimyldJF=x)0 zM|vc@;xlE_aRCplt2qhkzNaq-KI*gG>&3BChaP6N!Pnowe}~1;+jsEe$cJ}mT{t)F z)Sze2up8MqZs@XCKdyb|wq@+PrC(!S+WPnBdv~`SZQHzO_l?DG9NZo}`s?ZCQ{N1K zvi-mR>IuePcl~wtR(3QcQrrT_H3*z?5N6=ugk3EtihSO^_a9sP36Bv zP-bPJ0!}^|C6rV0XjD^A78&G`7<##+TtbF9ri^Hoc_N5nu1F%7Yr@zjel)`QA{0ux z$)ueQC$Pl|dn~bI zKxwI|kI=G~sHKDUIVrNu8oT9q(+*hewv?{gZL??S>I$!_nA-}vsc8G`eBO@hp|$!k zThhGXUTZH-HYy7)w)dKdDVLSTORZA*)+;Z+?YPS&zzjPaEySd`psp$GqLKgrJJ1r| Ae*gdg literal 0 HcmV?d00001 diff --git a/examples/GIFPlaySample/porsche.gif b/examples/GIFPlaySample/porsche.gif new file mode 100644 index 0000000000000000000000000000000000000000..916014e2c466fee2aead7b9d8ba5f7fa9c5cca99 GIT binary patch literal 6144 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 utT6Oh~DC8*s literal 0 HcmV?d00001 diff --git a/examples/GIFPlaySample/solid2.gif b/examples/GIFPlaySample/solid2.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e9524b0ae57b379fc324394d2f06ece64410185 GIT binary patch literal 18599 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 AJOBUy literal 0 HcmV?d00001 diff --git a/examples/GIFPlaySample/treescap.gif b/examples/GIFPlaySample/treescap.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9fb54536d9e41be6deec241226598beb9334d1c GIT binary patch literal 407 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 ZciAFuog#nhA{eA72wfC*k{h7*zW`fe-`M~F literal 0 HcmV?d00001 diff --git a/examples/GIFPlaySample/welcome2.gif b/examples/GIFPlaySample/welcome2.gif new file mode 100644 index 0000000000000000000000000000000000000000..0068b3f3f7fe25d08495b358d7094464241dfa3d GIT binary patch literal 36832 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 N==`VTKj#4R{}*h;pXmSq literal 0 HcmV?d00001 diff --git a/examples/GIFPlaySample/x-trans.gif b/examples/GIFPlaySample/x-trans.gif new file mode 100644 index 0000000000000000000000000000000000000000..6dab62da841906250367cbd3b2403172f0812b2b GIT binary patch literal 1113 zcmcgr+e_485FH^wq#H>XxRq8Ch)6IHMiD~Lsi1@3agMCWvgtIMVXZeNJ>`8D2Wm) zAptg^frVjoliTCMSS!}DwdB?!GsYURhOHsT0!1-a#0py>M+&`cEQ@8fOyG!7OU9B| zVoTTx)&K)(ummmCuo&2Y1{Q|N3353?jA3KQ>BCxNB1YHe=Cr;3;%S9%*+IkB0;Hpz$1VC71_I-YV}U z{`a4hshNSo;O^w3MThn#`*Q*tDdqRHn0PQs$A|w&kh0>YC??LA9jbX+9+!}o-yN!b zc6#>W+^Xz*H(s2X$HgDI@6~mkO-?LG%Bfh=S&_1Nb$ZXQ%HGSfx5Sqe&AA!5G`;9u zbI*hNf$Lf2@$++=8(!6ApHJJ~d!fGn+@b@^t0xbQ^xsOl-uC?1rje(O`DMk!#fNXd z3GE$h+}_u6=Y8w`&%M>_TJH|G$46fK8WMkO3oYIBDK`I7dcjGVpV*F=k^n2>5=&A*iZ~OK{>a}rh d#*wd2W<;;$g**QKnVcAl4ur$1S+Ub-