Use WUFFS_BASE__QUIRK_IGNORE_CHECKSUM
diff --git a/fuzz/c/std/zlib_fuzzer.c b/fuzz/c/std/zlib_fuzzer.c
index 4f104d4..c6167b9 100644
--- a/fuzz/c/std/zlib_fuzzer.c
+++ b/fuzz/c/std/zlib_fuzzer.c
@@ -87,7 +87,8 @@
   // Ignore the checksum for 99.99%-ish of all input. When fuzzers generate
   // random input, the checkum is very unlikely to match. Still, it's useful to
   // verify that checksumming does not lead to e.g. buffer overflows.
-  wuffs_zlib__decoder__set_ignore_checksum(&dec, hash & 0xFFFE);
+  wuffs_zlib__decoder__set_quirk_enabled(
+      &dec, WUFFS_BASE__QUIRK_IGNORE_CHECKSUM, hash & 0xFFFE);
 
   uint8_t dst_buffer[DST_BUFFER_ARRAY_SIZE];
   wuffs_base__io_buffer dst = ((wuffs_base__io_buffer){
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 0f4edba..813f7e7 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -26348,6 +26348,16 @@
     wuffs_gzip__decoder* self,
     uint32_t a_quirk,
     bool a_enabled) {
+  if (!self) {
+    return wuffs_base__make_empty_struct();
+  }
+  if (self->private_impl.magic != WUFFS_BASE__MAGIC) {
+    return wuffs_base__make_empty_struct();
+  }
+
+  if (a_quirk == 1) {
+    self->private_impl.f_ignore_checksum = a_enabled;
+  }
   return wuffs_base__make_empty_struct();
 }
 
@@ -29967,6 +29977,16 @@
     wuffs_zlib__decoder* self,
     uint32_t a_quirk,
     bool a_enabled) {
+  if (!self) {
+    return wuffs_base__make_empty_struct();
+  }
+  if (self->private_impl.magic != WUFFS_BASE__MAGIC) {
+    return wuffs_base__make_empty_struct();
+  }
+
+  if (a_quirk == 1) {
+    self->private_impl.f_ignore_checksum = a_enabled;
+  }
   return wuffs_base__make_empty_struct();
 }
 
@@ -31398,6 +31418,17 @@
     wuffs_png__decoder* self,
     uint32_t a_quirk,
     bool a_enabled) {
+  if (!self) {
+    return wuffs_base__make_empty_struct();
+  }
+  if (self->private_impl.magic != WUFFS_BASE__MAGIC) {
+    return wuffs_base__make_empty_struct();
+  }
+
+  if (a_quirk == 1) {
+    self->private_impl.f_ignore_checksum = a_enabled;
+    wuffs_zlib__decoder__set_quirk_enabled(&self->private_data.f_zlib, a_quirk, a_enabled);
+  }
   return wuffs_base__make_empty_struct();
 }
 
diff --git a/std/gzip/decode_gzip.wuffs b/std/gzip/decode_gzip.wuffs
index e8e5ce1..67fb478 100644
--- a/std/gzip/decode_gzip.wuffs
+++ b/std/gzip/decode_gzip.wuffs
@@ -37,6 +37,9 @@
 }
 
 pub func decoder.set_quirk_enabled!(quirk: base.u32, enabled: base.bool) {
+	if args.quirk == base.QUIRK_IGNORE_CHECKSUM {
+		this.ignore_checksum = args.enabled
+	}
 }
 
 pub func decoder.workbuf_len() base.range_ii_u64 {
diff --git a/std/png/decode_png.wuffs b/std/png/decode_png.wuffs
index 9363d4c..29d98c4 100644
--- a/std/png/decode_png.wuffs
+++ b/std/png/decode_png.wuffs
@@ -99,6 +99,10 @@
 }
 
 pub func decoder.set_quirk_enabled!(quirk: base.u32, enabled: base.bool) {
+	if args.quirk == base.QUIRK_IGNORE_CHECKSUM {
+		this.ignore_checksum = args.enabled
+		this.zlib.set_quirk_enabled!(quirk: args.quirk, enabled: args.enabled)
+	}
 }
 
 pub func decoder.decode_image_config?(dst: nptr base.image_config, src: base.io_reader) {
diff --git a/std/zlib/decode_zlib.wuffs b/std/zlib/decode_zlib.wuffs
index 8fef738..e77e52b 100644
--- a/std/zlib/decode_zlib.wuffs
+++ b/std/zlib/decode_zlib.wuffs
@@ -64,6 +64,9 @@
 }
 
 pub func decoder.set_quirk_enabled!(quirk: base.u32, enabled: base.bool) {
+	if args.quirk == base.QUIRK_IGNORE_CHECKSUM {
+		this.ignore_checksum = args.enabled
+	}
 }
 
 pub func decoder.workbuf_len() base.range_ii_u64 {
diff --git a/test/c/std/gzip.c b/test/c/std/gzip.c
index f417861..0ae8158 100644
--- a/test/c/std/gzip.c
+++ b/test/c/std/gzip.c
@@ -153,7 +153,8 @@
                  wuffs_gzip__decoder__initialize(
                      &dec, sizeof dec, WUFFS_VERSION,
                      WUFFS_INITIALIZE__LEAVE_INTERNAL_BUFFERS_UNINITIALIZED));
-    wuffs_gzip__decoder__set_ignore_checksum(&dec, ignore_checksum);
+    wuffs_gzip__decoder__set_quirk_enabled(
+        &dec, WUFFS_BASE__QUIRK_IGNORE_CHECKSUM, ignore_checksum);
     have.meta.wi = 0;
     src.meta.ri = 0;
 
diff --git a/test/c/std/zlib.c b/test/c/std/zlib.c
index ee1321e..e36e6a4 100644
--- a/test/c/std/zlib.c
+++ b/test/c/std/zlib.c
@@ -163,7 +163,8 @@
                  wuffs_zlib__decoder__initialize(
                      &dec, sizeof dec, WUFFS_VERSION,
                      WUFFS_INITIALIZE__LEAVE_INTERNAL_BUFFERS_UNINITIALIZED));
-    wuffs_zlib__decoder__set_ignore_checksum(&dec, ignore_checksum);
+    wuffs_zlib__decoder__set_quirk_enabled(
+        &dec, WUFFS_BASE__QUIRK_IGNORE_CHECKSUM, ignore_checksum);
     have.meta.wi = 0;
     src.meta.ri = 0;