- pkg->version = unpack_16_le(hdr+4);
- pkg->license = unpack_16_le(hdr+6);
- pkg->flags = unpack_32_le(hdr+8);
- pkg->name_count = unpack_32_le(hdr+12);
- pkg->export_count = unpack_32_le(hdr+20);
- pkg->import_count = unpack_32_le(hdr+28);
-
- pkg->priv->name_offset = unpack_32_le(hdr+16);
- pkg->priv->export_offset = unpack_32_le(hdr+24);
- pkg->priv->import_offset = unpack_32_le(hdr+32);
-
- return pkg;
+ alloc->pkg = (struct upkg) {
+ .version = unpack_16_le(hdr+4),
+ .license = unpack_16_le(hdr+6),
+ .flags = unpack_32_le(hdr+8),
+ .name_count = unpack_32_le(hdr+12),
+ .export_count = unpack_32_le(hdr+20),
+ .import_count = unpack_32_le(hdr+28),
+ .priv = &alloc->priv,
+ };
+
+ alloc->priv = (struct upkg_private) {
+ .name_offset = unpack_32_le(hdr+16),
+ .export_offset = unpack_32_le(hdr+24),
+ .import_offset = unpack_32_le(hdr+32),
+ };
+
+ return &alloc->pkg;