Fixed extension memory layout on 32-bit targets.

We were failing to propagate the DefPool's platform to the MiniDescriptor builder.  This caused upb's code generators to incorrectly generate a field rep of `kUpb_FieldRep_8Byte` for pointer-typed extension fields instead of the 32-bit clean output:

```
UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte)
```

PiperOrigin-RevId: 653263168
pull/17503/head
Joshua Haberman 8 months ago committed by Copybara-Service
parent 3a79dc7a09
commit 65b67eb6b1
  1. 6
      upb/reflection/field_def.c

@ -982,9 +982,9 @@ void _upb_FieldDef_BuildMiniTableExtension(upb_DefBuilder* ctx,
const upb_MiniTableEnum* subenum = _upb_EnumDef_MiniTable(f->sub.enumdef);
sub = upb_MiniTableSub_FromEnum(subenum);
}
bool ok2 = upb_MiniTableExtension_Init(desc.data, desc.size, mut_ext,
upb_MessageDef_MiniTable(f->msgdef),
sub, ctx->status);
bool ok2 = _upb_MiniTableExtension_Init(desc.data, desc.size, mut_ext,
upb_MessageDef_MiniTable(f->msgdef),
sub, ctx->platform, ctx->status);
if (!ok2) _upb_DefBuilder_Errf(ctx, "Could not build extension mini table");
}

Loading…
Cancel
Save