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

Commit ec970673 authored by Tao Bao's avatar Tao Bao
Browse files

Remove EXPAND/STRINGIFY macros.

They are error-prone by putting anything into a string (e.g.
EXPAND(RECOVERY_API_VERSION) would become "RECOVER_API_VERSION" if we
forgot to pass -DRECOVERY_API_VERSION=3).

RECOVERY_API_VERSION is the only user (in bootable/recovery) that gets
stringified. Assign it to a typed var and sanity check the value.

Don't see other reference to the macros from device-specific recovery
directories (they can still define that locally if really needed).

Test: recovery_component_test
Test: Sideload an OTA on angler and marlin respectively.
Change-Id: I358bbdf8f0a99db5ce4c7bc2fdcafe8013501b64
parent 89394632
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -22,8 +22,8 @@

#include <string>

#define STRINGIFY(x) #x
#define EXPAND(x) STRINGIFY(x)
static constexpr int kRecoveryApiVersion = RECOVERY_API_VERSION;  // Defined in Android.mk.
static_assert(kRecoveryApiVersion >= 3, "Invalid recovery API version.");

class RecoveryUI;

+1 −1
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ int update_binary_command(const std::string& path, ZipArchiveHandle zip, int ret

  *cmd = {
    binary,
    EXPAND(RECOVERY_API_VERSION),  // defined in Android.mk
    std::to_string(kRecoveryApiVersion),
    std::to_string(status_fd),
    path,
  };
+1 −1
Original line number Diff line number Diff line
@@ -1501,7 +1501,7 @@ int main(int argc, char **argv) {
    property_list(print_property, NULL);
    printf("\n");

    ui->Print("Supported API: %d\n", RECOVERY_API_VERSION);
    ui->Print("Supported API: %d\n", kRecoveryApiVersion);

    int status = INSTALL_SUCCESS;