Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41c0c10f authored by Yurii Zubrytskyi's avatar Yurii Zubrytskyi
Browse files

[res] Add named padding to ResTable_config

Follow the way the structs are defined in this file and
explicitly pad the structure with a named field.

+ add some static_assert statements to make sure nothing
  accidentally breaks binary structure of configs.

Test: build + boot
Flag: EXEMPT minor refactoring
Change-Id: I7e93aa0e92b080d0dcb77c790e5341f2342d7d2d
parent b946040e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1265,6 +1265,9 @@ struct ResTable_config
    // Varies in length from 3 to 8 chars. Zero-filled value.
    char localeNumberingSystem[8];

    // Mark all padding explicitly so it's clear how much we can expand it.
    char endPadding[3];

    void copyFromDeviceNoSwap(const ResTable_config& o) {
      const auto o_size = dtohl(o.size);
      if (o_size >= sizeof(ResTable_config)) [[likely]] {
@@ -1422,6 +1425,13 @@ struct ResTable_config
    void swapHtoD_slow();
};

// Fix the struct size for backward compatibility
static_assert(sizeof(ResTable_config) == 64);

// Make sure there's no unaccounted padding in the structure.
static_assert(offsetof(ResTable_config, endPadding) +
                  sizeof(ResTable_config::endPadding) == sizeof(ResTable_config));

/**
 * A specification of the resources defined by a particular type.
 *