Avoid (NULL + 0) in derived io_buffer variables

This addresses a "runtime error: applying zero offset to null pointer"
UBSAN (Undefined Behavior Sanitizer) warning using clang 15.0.1:
https://logs.chromium.org/logs/skia/5e005cc1b1981011/+/steps/dm/0/stdout

The offending line of code was "io1_a_dst = io0_a_dst + a_dst->meta.wi"
in wuffs_lzw__decoder__write_to and "io1_a_dst = NULL + 0" was Undefined
Behavior even though io1_a_dst was never dereferenced.

This commit avoids initializing io1_a_dst to (NULL + 0) when io0_a_dst
is NULL, falling back to initializing it with just NULL.

As discussed in https://reviews.llvm.org/D67122 while (nullptr + 0) is
Defined Behavior according to the C++ spec, (NULL + 0) is Undefined
Behavior (by omission) in C11 6.5.6/8: "If both the pointer operand and
the result point to elements of the same array object, or one past the
last element of the array object, the evaluation shall not produce an
overflow; otherwise, the behavior is undefined."

The benchmarks (an excerpt of the full suite is below) seem quite
sensitive to this simple change that's outside of hot loops, sometimes
much better and sometimes much worse. I don't know why.

name                                               old speed       new speed      delta

wuffs_bzip2_decode_10k/clang11                    63.1MB/s ± 0%   58.4MB/s ± 0%   -7.43%  (p=0.008 n=5+5)
wuffs_bzip2_decode_100k/clang11                   49.4MB/s ± 0%   46.2MB/s ± 0%   -6.35%  (p=0.008 n=5+5)

wuffs_bzip2_decode_10k/gcc10                      60.9MB/s ± 0%   56.3MB/s ± 0%   -7.59%  (p=0.016 n=5+4)
wuffs_bzip2_decode_100k/gcc10                     49.6MB/s ± 0%   47.0MB/s ± 0%   -5.15%  (p=0.008 n=5+5)

wuffs_deflate_decode_1k_full_init/clang11          196MB/s ± 0%    195MB/s ± 1%   -0.63%  (p=0.008 n=5+5)
wuffs_deflate_decode_1k_part_init/clang11          226MB/s ± 0%    224MB/s ± 0%   -0.95%  (p=0.008 n=5+5)
wuffs_deflate_decode_10k_full_init/clang11         409MB/s ± 0%    420MB/s ± 0%   +2.84%  (p=0.008 n=5+5)
wuffs_deflate_decode_10k_part_init/clang11         418MB/s ± 0%    431MB/s ± 0%   +2.97%  (p=0.008 n=5+5)
wuffs_deflate_decode_100k_just_one_read/clang11    517MB/s ± 1%    542MB/s ± 0%   +4.78%  (p=0.008 n=5+5)
wuffs_deflate_decode_100k_many_big_reads/clang11   330MB/s ± 0%    338MB/s ± 0%   +2.45%  (p=0.008 n=5+5)

wuffs_deflate_decode_1k_full_init/gcc10            188MB/s ± 0%    177MB/s ± 0%   -5.38%  (p=0.008 n=5+5)
wuffs_deflate_decode_1k_part_init/gcc10            218MB/s ± 0%    209MB/s ± 0%   -4.11%  (p=0.016 n=4+5)
wuffs_deflate_decode_10k_full_init/gcc10           402MB/s ± 0%    407MB/s ± 1%   +1.19%  (p=0.008 n=5+5)
wuffs_deflate_decode_10k_part_init/gcc10           413MB/s ± 0%    419MB/s ± 1%   +1.64%  (p=0.008 n=5+5)
wuffs_deflate_decode_100k_just_one_read/gcc10      520MB/s ± 0%    532MB/s ± 0%   +2.25%  (p=0.008 n=5+5)
wuffs_deflate_decode_100k_many_big_reads/gcc10     330MB/s ± 0%    335MB/s ± 0%   +1.56%  (p=0.008 n=5+5)

wuffs_gif_decode_1k_bw/clang11                     781MB/s ± 0%    645MB/s ± 0%  -17.46%  (p=0.008 n=5+5)
wuffs_gif_decode_1k_color_full_init/clang11        176MB/s ± 0%    181MB/s ± 0%   +3.11%  (p=0.008 n=5+5)
wuffs_gif_decode_1k_color_part_init/clang11        215MB/s ± 0%    223MB/s ± 0%   +3.46%  (p=0.008 n=5+5)
wuffs_gif_decode_10k_bgra/clang11                  786MB/s ± 0%    801MB/s ± 0%   +1.94%  (p=0.008 n=5+5)
wuffs_gif_decode_10k_indexed/clang11               208MB/s ± 0%    211MB/s ± 0%   +1.44%  (p=0.008 n=5+5)
wuffs_gif_decode_20k/clang11                       261MB/s ± 0%    252MB/s ± 0%   -3.43%  (p=0.008 n=5+5)
wuffs_gif_decode_100k_artificial/clang11           578MB/s ± 0%    583MB/s ± 0%   +0.86%  (p=0.008 n=5+5)
wuffs_gif_decode_100k_realistic/clang11            224MB/s ± 0%    223MB/s ± 0%   -0.79%  (p=0.008 n=5+5)
wuffs_gif_decode_1000k_full_init/clang11           229MB/s ± 0%    225MB/s ± 0%   -1.73%  (p=0.008 n=5+5)
wuffs_gif_decode_1000k_part_init/clang11           229MB/s ± 0%    225MB/s ± 0%   -1.69%  (p=0.008 n=5+5)
wuffs_gif_decode_anim_screencap/clang11           1.31GB/s ± 0%   1.29GB/s ± 0%   -1.06%  (p=0.008 n=5+5)

wuffs_gif_decode_1k_bw/gcc10                       650MB/s ± 0%    631MB/s ± 0%   -3.03%  (p=0.008 n=5+5)
wuffs_gif_decode_1k_color_full_init/gcc10          169MB/s ± 0%    168MB/s ± 0%   -0.51%  (p=0.008 n=5+5)
wuffs_gif_decode_1k_color_part_init/gcc10          202MB/s ± 0%    202MB/s ± 0%   -0.18%  (p=0.008 n=5+5)
wuffs_gif_decode_10k_bgra/gcc10                    766MB/s ± 0%    790MB/s ± 0%   +3.08%  (p=0.008 n=5+5)
wuffs_gif_decode_10k_indexed/gcc10                 202MB/s ± 0%    208MB/s ± 0%   +3.16%  (p=0.008 n=5+5)
wuffs_gif_decode_20k/gcc10                         250MB/s ± 0%    258MB/s ± 0%   +3.20%  (p=0.008 n=5+5)
wuffs_gif_decode_100k_artificial/gcc10             563MB/s ± 0%    566MB/s ± 0%   +0.57%  (p=0.008 n=5+5)
wuffs_gif_decode_100k_realistic/gcc10              217MB/s ± 0%    220MB/s ± 0%   +1.49%  (p=0.008 n=5+5)
wuffs_gif_decode_1000k_full_init/gcc10             220MB/s ± 0%    224MB/s ± 0%   +1.49%  (p=0.008 n=5+5)
wuffs_gif_decode_1000k_part_init/gcc10             220MB/s ± 0%    224MB/s ± 0%   +1.43%  (p=0.008 n=5+5)
wuffs_gif_decode_anim_screencap/gcc10             1.30GB/s ± 0%   1.30GB/s ± 0%   +0.34%  (p=0.008 n=5+5)

wuffs_lzw_decode_20k/clang11                       293MB/s ± 0%    292MB/s ± 0%   -0.41%  (p=0.008 n=5+5)
wuffs_lzw_decode_100k/clang11                      486MB/s ± 0%    537MB/s ± 0%  +10.49%  (p=0.008 n=5+5)

wuffs_lzw_decode_20k/gcc10                         258MB/s ± 0%    276MB/s ± 0%   +7.19%  (p=0.016 n=4+5)
wuffs_lzw_decode_100k/gcc10                        512MB/s ± 0%    527MB/s ± 0%   +3.08%  (p=0.016 n=4+5)
diff --git a/internal/cgen/var.go b/internal/cgen/var.go
index 1181ec0..68384c1 100644
--- a/internal/cgen/var.go
+++ b/internal/cgen/var.go
@@ -125,7 +125,7 @@
 	b.printf("%s%s* %s%s WUFFS_BASE__POTENTIALLY_UNUSED = NULL;\n", c, elem, io1Prefix, preName)
 	b.printf("%s%s* %s%s WUFFS_BASE__POTENTIALLY_UNUSED = NULL;\n", c, elem, io2Prefix, preName)
 
-	b.printf("if (%s) {\n", preName)
+	b.printf("if (%s && %s->data.ptr) {\n", preName, preName)
 
 	b.printf("%s%s = %s->data.ptr;\n", io0Prefix, preName, preName)
 	b.printf("%s%s = %s%s + %s->%s;\n", io1Prefix, preName, io0Prefix, preName, preName, i1)
@@ -149,8 +149,8 @@
 	}
 	preName := aPrefix + n.Name().Str(g.tm)
 
-	b.printf("if (%s) {\n%s->%s = ((size_t)(%s%s - %s->data.ptr));\n}\n",
-		preName, preName, i1, iopPrefix, preName, preName)
+	b.printf("if (%s && %s->data.ptr) {\n%s->%s = ((size_t)(%s%s - %s->data.ptr));\n}\n",
+		preName, preName, preName, i1, iopPrefix, preName, preName)
 	return nil
 }
 
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 4b8b3c5..0517639 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -22698,7 +22698,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -23573,7 +23573,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -23615,7 +23615,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -23682,7 +23682,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -23729,7 +23729,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -23866,7 +23866,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -23899,7 +23899,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -23969,7 +23969,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -24006,7 +24006,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -24231,7 +24231,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -24268,7 +24268,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -24371,7 +24371,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -24404,7 +24404,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -24539,7 +24539,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -24742,7 +24742,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -24856,7 +24856,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -25174,7 +25174,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -25388,7 +25388,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -25418,7 +25418,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -25712,7 +25712,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -25735,7 +25735,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -25840,7 +25840,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -26013,7 +26013,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -26066,7 +26066,7 @@
   if (v_block_size <= 900000) {
     self->private_impl.f_block_size = v_block_size;
   }
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
 
@@ -26093,7 +26093,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -26187,7 +26187,7 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
 
@@ -26222,7 +26222,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -26317,7 +26317,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -26346,7 +26346,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -26450,7 +26450,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -26647,7 +26647,7 @@
   wuffs_base__token* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -26660,7 +26660,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -27184,10 +27184,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -28681,7 +28681,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -28740,7 +28740,7 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
 
@@ -28768,7 +28768,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -28897,7 +28897,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -28920,7 +28920,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -28933,7 +28933,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -29016,10 +29016,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -29103,7 +29103,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -29324,7 +29324,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -29617,7 +29617,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -29630,7 +29630,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -29791,10 +29791,10 @@
   }
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -29830,7 +29830,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -29843,7 +29843,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -30049,10 +30049,10 @@
   }
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -30094,7 +30094,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -30107,7 +30107,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -30268,10 +30268,10 @@
   }
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -30311,7 +30311,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -30324,7 +30324,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -30603,10 +30603,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -30895,7 +30895,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -31037,7 +31037,7 @@
   self->private_impl.f_bits = v_bits;
   self->private_impl.f_n_bits = v_n_bits;
   self->private_impl.f_output_wi = v_output_wi;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -31059,7 +31059,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -31104,7 +31104,7 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
 
@@ -31562,7 +31562,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -31662,7 +31662,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -31828,7 +31828,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -31947,7 +31947,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -31972,7 +31972,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32047,7 +32047,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32162,7 +32162,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32238,7 +32238,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32260,7 +32260,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32311,7 +32311,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32337,7 +32337,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32513,7 +32513,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32534,7 +32534,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32606,7 +32606,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32627,7 +32627,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32674,7 +32674,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32700,7 +32700,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -32897,7 +32897,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -32920,7 +32920,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -33027,7 +33027,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -33046,7 +33046,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -33194,7 +33194,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -33223,7 +33223,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -33365,7 +33365,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -33403,7 +33403,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -33593,7 +33593,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -33920,7 +33920,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -33933,7 +33933,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -34204,10 +34204,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -34697,7 +34697,7 @@
   wuffs_base__token* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -34710,7 +34710,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -35640,10 +35640,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -35667,7 +35667,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -35782,7 +35782,7 @@
     goto label__goto_done__break;
   }
   label__goto_done__break:;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
   return (v_n | v_floating_point);
@@ -35802,7 +35802,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -35832,7 +35832,7 @@
   if (v_n == a_n) {
     v_n |= 256;
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
   return v_n;
@@ -35854,7 +35854,7 @@
   wuffs_base__token* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -35867,7 +35867,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -35937,10 +35937,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -35964,7 +35964,7 @@
   wuffs_base__token* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -35977,7 +35977,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -36119,10 +36119,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -36145,7 +36145,7 @@
   wuffs_base__token* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -36158,7 +36158,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -36276,10 +36276,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -36302,7 +36302,7 @@
   wuffs_base__token* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   wuffs_base__token* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -36315,7 +36315,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -36414,10 +36414,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -36597,7 +36597,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -36781,7 +36781,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -36823,7 +36823,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -36890,7 +36890,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -37026,7 +37026,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -37078,7 +37078,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -37504,7 +37504,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -37517,7 +37517,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -37701,10 +37701,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -39636,7 +39636,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -39928,7 +39928,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -39953,7 +39953,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -40132,7 +40132,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -40301,7 +40301,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -40521,7 +40521,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -40540,7 +40540,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -40634,7 +40634,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -40655,7 +40655,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -40931,7 +40931,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -40950,7 +40950,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -40972,7 +40972,7 @@
   ok:
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -40996,7 +40996,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -41309,7 +41309,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -41328,7 +41328,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -41390,7 +41390,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -41411,7 +41411,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -41479,7 +41479,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -41502,7 +41502,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -41582,7 +41582,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -41601,7 +41601,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -41643,7 +41643,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -41666,7 +41666,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -41828,7 +41828,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -41869,7 +41869,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -42119,7 +42119,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -42143,7 +42143,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -42274,7 +42274,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -42321,7 +42321,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -42544,7 +42544,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -42580,7 +42580,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -42886,7 +42886,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -43069,7 +43069,7 @@
   uint8_t* io0_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io1_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   uint8_t* io2_a_dst WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     io0_a_dst = a_dst->data.ptr;
     io1_a_dst = io0_a_dst + a_dst->meta.wi;
     iop_a_dst = io1_a_dst;
@@ -43082,7 +43082,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -43533,10 +43533,10 @@
 
   goto exit;
   exit:
-  if (a_dst) {
+  if (a_dst && a_dst->data.ptr) {
     a_dst->meta.wi = ((size_t)(iop_a_dst - a_dst->data.ptr));
   }
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -44094,7 +44094,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -44523,7 +44523,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -44565,7 +44565,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -44632,7 +44632,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -44698,7 +44698,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -44980,7 +44980,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -45328,7 +45328,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -45424,7 +45424,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -45466,7 +45466,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -45533,7 +45533,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }
 
@@ -45590,7 +45590,7 @@
   const uint8_t* io0_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io1_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
   const uint8_t* io2_a_src WUFFS_BASE__POTENTIALLY_UNUSED = NULL;
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     io0_a_src = a_src->data.ptr;
     io1_a_src = io0_a_src + a_src->meta.ri;
     iop_a_src = io1_a_src;
@@ -45702,7 +45702,7 @@
 
   goto exit;
   exit:
-  if (a_src) {
+  if (a_src && a_src->data.ptr) {
     a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
   }