Fold a memset call into an initialize call
diff --git a/cmd/wuffs-c/internal/cgen/expr.go b/cmd/wuffs-c/internal/cgen/expr.go
index 62ee396..67d9f08 100644
--- a/cmd/wuffs-c/internal/cgen/expr.go
+++ b/cmd/wuffs-c/internal/cgen/expr.go
@@ -107,34 +107,24 @@
 			}
 			qid := recvTyp.QID()
 
-			// Generate a 2 or 3 part expression using the comma operator:
-			// "(memset call, check_wuffs_version call, return_empty_struct
-			// call)". The final part is a function call (to a static inline
-			// function) instead of a struct literal, to avoid a "expression
-			// result unused" compiler error.
-			//
-			// The middle part, the check_wuffs_version call, is optional, for
-			// some built-in types.
-
-			// TODO: drop the memset and the WUFFS_INITIALIZE__ALREADY_ZEROED.
-
-			b.printf("(memset(%s", addr)
-			// TODO: ensure that the recv expression is idempotent.
-			if err := g.writeExpr(b, recv, depth); err != nil {
-				return err
-			}
-			b.printf(", 0, sizeof (%s%s))", g.packagePrefix(qid), qid[1].Str(g.tm))
-
 			if isBaseRangeType(qid) {
-				b.writes(", wuffs_base__return_empty_struct())")
+				// Generate a 2 part expression using the comma operator: "(memset
+				// call, return_empty_struct call)". The final part is a function
+				// call (to a static inline function) instead of a struct literal,
+				// to avoid a "expression result unused" compiler error.
+				b.printf("(memset(%s", addr)
+				if err := g.writeExpr(b, recv, depth); err != nil {
+					return err
+				}
+				b.printf(", 0, sizeof (%s%s)), wuffs_base__return_empty_struct())",
+					g.packagePrefix(qid), qid[1].Str(g.tm))
 			} else {
-				b.printf(", wuffs_base__ignore_status("+
+				b.printf("wuffs_base__ignore_status("+
 					"%s%s__initialize(%s", g.packagePrefix(qid), qid[1].Str(g.tm), addr)
 				if err := g.writeExpr(b, recv, depth); err != nil {
 					return err
 				}
-				b.printf(", sizeof (%s%s), WUFFS_VERSION, WUFFS_INITIALIZE__ALREADY_ZEROED)))",
-					g.packagePrefix(qid), qid[1].Str(g.tm))
+				b.printf(", sizeof (%s%s), WUFFS_VERSION, 0))", g.packagePrefix(qid), qid[1].Str(g.tm))
 			}
 
 			return nil
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index b492027..799fe09 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -10406,10 +10406,9 @@
             .len = 1024,
         }));
     if (self->private_impl.f_previous_lzw_decode_ended_abruptly) {
-      (memset(&self->private_data.f_lzw, 0, sizeof(wuffs_lzw__decoder)),
-       wuffs_base__ignore_status(wuffs_lzw__decoder__initialize(
-           &self->private_data.f_lzw, sizeof(wuffs_lzw__decoder), WUFFS_VERSION,
-           WUFFS_INITIALIZE__ALREADY_ZEROED)));
+      wuffs_base__ignore_status(wuffs_lzw__decoder__initialize(
+          &self->private_data.f_lzw, sizeof(wuffs_lzw__decoder), WUFFS_VERSION,
+          0));
     }
     {
       WUFFS_BASE__COROUTINE_SUSPENSION_POINT(4);