Harden MetalCodeGenerator::writeFields
Harden MetalCodeGenerator::writeFields

Prevent signed integer overflow, and return early once an error is
detected (so that the invariants of the logic are guaranteed on
subsequent iterations).

Also: Make the generator actually return false when there are errors.

Bug: oss-fuzz:23178
Change-Id: Ic8777f144f747a9b74e39636c4ee175170cbe497
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315649
Reviewed-by: John Stiles <f4fcf42d3bb5924557f1eeb3be66747535e585da@google.com>
Commit-Queue: Brian Osman <794c0b5534edf5601d88e1d41975d0262da12894@google.com>

aosp-mirror/platform_external_skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,aosp-mirror/platform_external_skia,google/skia,google/skia,aosp-mirror/platform_external_skia,google/skia,google/skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,google/skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia