upb_Encode() now returns a status value
PiperOrigin-RevId: 454740100
diff --git a/python/message.c b/python/message.c
index 24d45cf..68efb19 100644
--- a/python/message.c
+++ b/python/message.c
@@ -1487,12 +1487,14 @@
size_t size = 0;
// Python does not currently have any effective limit on serialization depth.
int options = UPB_ENCODE_MAXDEPTH(UINT32_MAX);
- if (check_required) options |= kUpb_Encode_CheckRequired;
- if (deterministic) options |= kUpb_Encode_Deterministic;
- char* pb = upb_Encode(self->ptr.msg, layout, options, arena, &size);
+ if (check_required) options |= kUpb_EncodeOption_CheckRequired;
+ if (deterministic) options |= kUpb_EncodeOption_Deterministic;
+ char* pb;
+ upb_EncodeStatus status =
+ upb_Encode(self->ptr.msg, layout, options, arena, &pb, &size);
PyObject* ret = NULL;
- if (!pb) {
+ if (status != kUpb_EncodeStatus_Ok) {
PyUpb_ModuleState* state = PyUpb_ModuleState_Get();
PyObject* errors = PyUpb_Message_FindInitializationErrors(_self, NULL);
if (PyList_Size(errors) != 0) {