Fix enum writing.
Enums use varint, so if the value is negative it should end up being longer.
This was caught my new conformance test cases.
diff --git a/objectivec/GPBCodedOutputStream.m b/objectivec/GPBCodedOutputStream.m
index b846c2f..0693906 100644
--- a/objectivec/GPBCodedOutputStream.m
+++ b/objectivec/GPBCodedOutputStream.m
@@ -374,12 +374,12 @@
}
- (void)writeEnumNoTag:(int32_t)value {
- GPBWriteRawVarint32(&state_, value);
+ GPBWriteInt32NoTag(&state_, value);
}
- (void)writeEnum:(int32_t)fieldNumber value:(int32_t)value {
GPBWriteTagWithFormat(&state_, fieldNumber, GPBWireFormatVarint);
- GPBWriteRawVarint32(&state_, value);
+ GPBWriteInt32NoTag(&state_, value);
}
- (void)writeSFixed32NoTag:(int32_t)value {
@@ -1053,7 +1053,7 @@
}
size_t GPBComputeEnumSizeNoTag(int32_t value) {
- return GPBComputeRawVarint32Size(value);
+ return GPBComputeInt32SizeNoTag(value);
}
size_t GPBComputeSFixed32SizeNoTag(int32_t value) {