Simplify some io0_etc references
diff --git a/internal/cgen/builtin.go b/internal/cgen/builtin.go
index 1529d6b..7a9a787 100644
--- a/internal/cgen/builtin.go
+++ b/internal/cgen/builtin.go
@@ -153,8 +153,7 @@
 		return nil
 
 	case t.IDPosition:
-		b.printf("(a_src ? wuffs_base__u64__sat_add(" +
-			"a_src->meta.pos, ((uint64_t)(iop_a_src - a_src->data.ptr))) : 0)")
+		b.printf("wuffs_base__u64__sat_add(a_src->meta.pos, ((uint64_t)(iop_a_src - io0_a_src)))")
 		return nil
 
 	case t.IDSince:
@@ -215,8 +214,7 @@
 			suffix = "_fast"
 		}
 		b.printf("wuffs_base__io_writer__copy_n_from_history%s("+
-			"&iop_a_dst, %sdst->data.ptr, io2_a_dst",
-			suffix, aPrefix)
+			"&iop_a_dst, io0_a_dst, io2_a_dst", suffix)
 		for _, o := range args {
 			b.writeb(',')
 			if err := g.writeExpr(b, o.AsArg().Value(), depth); err != nil {
@@ -251,16 +249,12 @@
 		b.printf(", ((uint64_t)(iop_a_dst - io0_a_dst)))")
 		return nil
 
-	case t.IDHistoryAvailable:
-		b.printf("((uint64_t)(iop_%s%s - %s%s->data.ptr))", prefix, name, prefix, name)
-		return nil
-
-	case t.IDMark:
-		b.printf("((uint64_t)(iop_a_dst - io0_a_dst))")
+	case t.IDHistoryAvailable, t.IDMark:
+		b.printf("((uint64_t)(iop_%s%s - io0_%s%s))", prefix, name, prefix, name)
 		return nil
 
 	case t.IDPosition:
-		b.printf("(a_dst ? wuffs_base__u64__sat_add(a_dst->meta.pos, iop_a_dst - a_dst->data.ptr) : 0)")
+		b.printf("wuffs_base__u64__sat_add(a_dst->meta.pos, ((uint64_t)(iop_a_dst - io0_a_dst)))")
 		return nil
 
 	case t.IDSince:
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 964d7dd..17819b3 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -7536,10 +7536,10 @@
     v_n_copied = 0;
     while (true) {
       if (((uint64_t)((v_dist_minus_1 + 1))) >
-          ((uint64_t)(iop_a_dst - a_dst->data.ptr))) {
+          ((uint64_t)(iop_a_dst - io0_a_dst))) {
         v_hlen = 0;
         v_hdist = ((uint32_t)((((uint64_t)((v_dist_minus_1 + 1))) -
-                               ((uint64_t)(iop_a_dst - a_dst->data.ptr)))));
+                               ((uint64_t)(iop_a_dst - io0_a_dst)))));
         if (v_length > v_hdist) {
           v_length -= v_hdist;
           v_hlen = v_hdist;
@@ -7573,14 +7573,13 @@
           goto label_0_continue;
         }
         if (((uint64_t)((v_dist_minus_1 + 1))) >
-            ((uint64_t)(iop_a_dst - a_dst->data.ptr))) {
+            ((uint64_t)(iop_a_dst - io0_a_dst))) {
           status = wuffs_deflate__error__internal_error_inconsistent_distance;
           goto exit;
         }
       }
       wuffs_base__io_writer__copy_n_from_history_fast(
-          &iop_a_dst, a_dst->data.ptr, io2_a_dst, v_length,
-          (v_dist_minus_1 + 1));
+          &iop_a_dst, io0_a_dst, io2_a_dst, v_length, (v_dist_minus_1 + 1));
       goto label_2_break;
     }
   label_2_break:;
@@ -7894,9 +7893,9 @@
       }
       while (true) {
         if (((uint64_t)((v_dist_minus_1 + 1))) >
-            ((uint64_t)(iop_a_dst - a_dst->data.ptr))) {
+            ((uint64_t)(iop_a_dst - io0_a_dst))) {
           v_hdist = ((uint32_t)((((uint64_t)((v_dist_minus_1 + 1))) -
-                                 ((uint64_t)(iop_a_dst - a_dst->data.ptr)))));
+                                 ((uint64_t)(iop_a_dst - io0_a_dst)))));
           if (v_length > v_hdist) {
             v_length -= v_hdist;
             v_hlen = v_hdist;
@@ -7955,8 +7954,7 @@
           }
         }
         v_n_copied = wuffs_base__io_writer__copy_n_from_history(
-            &iop_a_dst, a_dst->data.ptr, io2_a_dst, v_length,
-            (v_dist_minus_1 + 1));
+            &iop_a_dst, io0_a_dst, io2_a_dst, v_length, (v_dist_minus_1 + 1));
         if (v_length <= v_n_copied) {
           v_length = 0;
           goto label_7_break;
@@ -8890,9 +8888,9 @@
       status = wuffs_base__error__bad_call_sequence;
       goto exit;
     }
-    if ((a_src ? wuffs_base__u64__sat_add(
-                     a_src->meta.pos, ((uint64_t)(iop_a_src - a_src->data.ptr)))
-               : 0) != self->private_impl.f_metadata_io_position) {
+    if (wuffs_base__u64__sat_add(a_src->meta.pos,
+                                 ((uint64_t)(iop_a_src - io0_a_src))) !=
+        self->private_impl.f_metadata_io_position) {
       status = wuffs_base__error__bad_i_o_position;
       goto exit;
     }
@@ -8905,10 +8903,8 @@
           (((uint64_t)(wuffs_base__load_u8be(iop_a_src))) + 1);
       if (self->private_impl.f_metadata_chunk_length_value > 1) {
         self->private_impl.f_metadata_io_position = wuffs_base__u64__sat_add(
-            (a_src ? wuffs_base__u64__sat_add(
-                         a_src->meta.pos,
-                         ((uint64_t)(iop_a_src - a_src->data.ptr)))
-                   : 0),
+            wuffs_base__u64__sat_add(a_src->meta.pos,
+                                     ((uint64_t)(iop_a_src - io0_a_src))),
             self->private_impl.f_metadata_chunk_length_value);
         status = wuffs_base__warning__metadata_reported;
         goto ok;
@@ -8919,10 +8915,8 @@
       if (self->private_impl.f_metadata_chunk_length_value > 0) {
         (iop_a_src += 1, wuffs_base__make_empty_struct());
         self->private_impl.f_metadata_io_position = wuffs_base__u64__sat_add(
-            (a_src ? wuffs_base__u64__sat_add(
-                         a_src->meta.pos,
-                         ((uint64_t)(iop_a_src - a_src->data.ptr)))
-                   : 0),
+            wuffs_base__u64__sat_add(a_src->meta.pos,
+                                     ((uint64_t)(iop_a_src - io0_a_src))),
             self->private_impl.f_metadata_chunk_length_value);
         status = wuffs_base__warning__metadata_reported;
         goto ok;
@@ -9494,16 +9488,12 @@
     if (!self->private_impl.f_restarted) {
       if (self->private_impl.f_call_sequence != 2) {
         self->private_impl.f_frame_config_io_position =
-            (a_src ? wuffs_base__u64__sat_add(
-                         a_src->meta.pos,
-                         ((uint64_t)(iop_a_src - a_src->data.ptr)))
-                   : 0);
+            wuffs_base__u64__sat_add(a_src->meta.pos,
+                                     ((uint64_t)(iop_a_src - io0_a_src)));
       }
     } else if (self->private_impl.f_frame_config_io_position !=
-               (a_src ? wuffs_base__u64__sat_add(
-                            a_src->meta.pos,
-                            ((uint64_t)(iop_a_src - a_src->data.ptr)))
-                      : 0)) {
+               wuffs_base__u64__sat_add(a_src->meta.pos,
+                                        ((uint64_t)(iop_a_src - io0_a_src)))) {
       status = wuffs_base__error__bad_restart;
       goto exit;
     } else {
@@ -10226,10 +10216,8 @@
         (iop_a_src += 1, wuffs_base__make_empty_struct());
         self->private_impl.f_metadata_fourcc_value = 1229144912;
         self->private_impl.f_metadata_io_position = wuffs_base__u64__sat_add(
-            (a_src ? wuffs_base__u64__sat_add(
-                         a_src->meta.pos,
-                         ((uint64_t)(iop_a_src - a_src->data.ptr)))
-                   : 0),
+            wuffs_base__u64__sat_add(a_src->meta.pos,
+                                     ((uint64_t)(iop_a_src - io0_a_src))),
             self->private_impl.f_metadata_chunk_length_value);
         self->private_impl.f_call_sequence = 1;
         status = wuffs_base__warning__metadata_reported;
@@ -10243,10 +10231,8 @@
             (((uint64_t)(wuffs_base__load_u8be(iop_a_src))) + 1);
         self->private_impl.f_metadata_fourcc_value = 1481461792;
         self->private_impl.f_metadata_io_position = wuffs_base__u64__sat_add(
-            (a_src ? wuffs_base__u64__sat_add(
-                         a_src->meta.pos,
-                         ((uint64_t)(iop_a_src - a_src->data.ptr)))
-                   : 0),
+            wuffs_base__u64__sat_add(a_src->meta.pos,
+                                     ((uint64_t)(iop_a_src - io0_a_src))),
             self->private_impl.f_metadata_chunk_length_value);
         self->private_impl.f_call_sequence = 1;
         status = wuffs_base__warning__metadata_reported;