std/jpeg: tweak ignore too-short marker code

name                                             old speed     new speed     delta

wuffs_jpeg_decode_19k_8bpp/clang14               317MB/s ± 0%  325MB/s ± 0%  +2.60%  (p=0.008 n=5+5)
wuffs_jpeg_decode_30k_24bpp_progressive/clang14  322MB/s ± 0%  325MB/s ± 0%  +0.94%  (p=0.008 n=5+5)
wuffs_jpeg_decode_30k_24bpp_sequential/clang14   864MB/s ± 0%  880MB/s ± 0%  +1.84%  (p=0.008 n=5+5)
wuffs_jpeg_decode_77k_24bpp/clang14              720MB/s ± 0%  730MB/s ± 0%  +1.39%  (p=0.016 n=4+5)
wuffs_jpeg_decode_552k_24bpp_420/clang14         783MB/s ± 0%  794MB/s ± 0%  +1.44%  (p=0.008 n=5+5)
wuffs_jpeg_decode_552k_24bpp_444/clang14         884MB/s ± 0%  914MB/s ± 0%  +3.39%  (p=0.008 n=5+5)
wuffs_jpeg_decode_4002k_24bpp/clang14            781MB/s ± 0%  796MB/s ± 0%  +1.90%  (p=0.008 n=5+5)

wuffs_jpeg_decode_19k_8bpp/gcc12                 359MB/s ± 0%  360MB/s ± 0%  +0.12%  (p=0.008 n=5+5)
wuffs_jpeg_decode_30k_24bpp_progressive/gcc12    311MB/s ± 0%  310MB/s ± 0%  -0.30%  (p=0.008 n=5+5)
wuffs_jpeg_decode_30k_24bpp_sequential/gcc12     909MB/s ± 0%  915MB/s ± 0%  +0.66%  (p=0.008 n=5+5)
wuffs_jpeg_decode_77k_24bpp/gcc12                747MB/s ± 0%  750MB/s ± 0%  +0.34%  (p=0.008 n=5+5)
wuffs_jpeg_decode_552k_24bpp_420/gcc12           817MB/s ± 0%  819MB/s ± 0%  +0.30%  (p=0.008 n=5+5)
wuffs_jpeg_decode_552k_24bpp_444/gcc12           971MB/s ± 0%  972MB/s ± 0%  +0.11%  (p=0.008 n=5+5)
wuffs_jpeg_decode_4002k_24bpp/gcc12              819MB/s ± 0%  821MB/s ± 0%  +0.21%  (p=0.008 n=5+5)
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 320e924..15cf5a3 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -49070,14 +49070,14 @@
           }
           self->private_impl.f_payload_length = t_4;
         }
-        if (self->private_impl.f_payload_length >= 2u) {
-          self->private_impl.f_payload_length -= 2u;
-        } else if ((v_marker == 254u) || ((224u <= v_marker) && (v_marker < 240u))) {
-          continue;
-        } else {
+        if (self->private_impl.f_payload_length < 2u) {
+          if ((v_marker == 254u) || ((224u <= v_marker) && (v_marker < 240u))) {
+            continue;
+          }
           status = wuffs_base__make_status(wuffs_jpeg__error__bad_marker);
           goto exit;
         }
+        self->private_impl.f_payload_length -= 2u;
       }
       if (v_marker < 192u) {
         status = wuffs_base__make_status(wuffs_jpeg__error__unsupported_marker);
diff --git a/std/jpeg/decode_jpeg.wuffs b/std/jpeg/decode_jpeg.wuffs
index 40ee683..5754195 100644
--- a/std/jpeg/decode_jpeg.wuffs
+++ b/std/jpeg/decode_jpeg.wuffs
@@ -426,18 +426,18 @@
         } else {
             this.payload_length = args.src.read_u16be_as_u32?()
             // Payload length includes the 2 bytes for the u16be just read.
-            if this.payload_length >= 2 {
-                this.payload_length -= 2
-            } else if (marker == 0xFE) or  // COM.
-                    ((0xE0 <= marker) and (marker < 0xF0)) {  // APPn.
-                // Strictly speaking, this is invalid according to Section
-                // B.1.1.4 "Marker segments". However, libjpeg-turbo allows it
-                // (for COM and APPn markers; see its jdmarker.c file's
-                // skip_variable function) so we do too.
-                continue
-            } else {
+            if this.payload_length < 2 {
+                if (marker == 0xFE) or  // COM.
+                        ((0xE0 <= marker) and (marker < 0xF0)) {  // APPn.
+                    // Strictly speaking, this is invalid according to Section
+                    // B.1.1.4 "Marker segments". However, libjpeg-turbo allows
+                    // it (for COM and APPn markers; see its jdmarker.c file's
+                    // skip_variable function) so we do too.
+                    continue
+                }
                 return "#bad marker"
             }
+            this.payload_length -= 2
         }
 
         // Switch on the marker.