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

Commit b4577cb2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Adding more logging in VersionCollapser for better debugging" into main

parents 62b5b08e 60644476
Loading
Loading
Loading
Loading
+20 −3
Original line number Original line Diff line number Diff line
@@ -70,7 +70,7 @@ FilterIterator<Iterator, Pred> make_filter_iterator(Iterator begin,
 * exception is when there is no exact matching resource for the minSdk. The next smallest one will
 * exception is when there is no exact matching resource for the minSdk. The next smallest one will
 * be kept.
 * be kept.
 */
 */
static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
static void CollapseVersions(IAaptContext* context, int min_sdk, ResourceEntry* entry) {
  // First look for all sdks less than minSdk.
  // First look for all sdks less than minSdk.
  for (auto iter = entry->values.rbegin(); iter != entry->values.rend();
  for (auto iter = entry->values.rbegin(); iter != entry->values.rend();
       ++iter) {
       ++iter) {
@@ -102,7 +102,14 @@ static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
      auto filter_iter =
      auto filter_iter =
          make_filter_iterator(iter + 1, entry->values.rend(), pred);
          make_filter_iterator(iter + 1, entry->values.rend(), pred);
      while (filter_iter.HasNext()) {
      while (filter_iter.HasNext()) {
        filter_iter.Next() = {};
        auto& next = filter_iter.Next();
        if (context->IsVerbose()) {
          context->GetDiagnostics()->Note(android::DiagMessage()
                                          << "removing configuration " << next->config.to_string()
                                          << " for entry: " << entry->name
                                          << ", because its SDK version is smaller than minSdk");
        }
        next = {};
      }
      }
    }
    }
  }
  }
@@ -126,6 +133,12 @@ static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
          util::make_unique<ResourceConfigValue>(
          util::make_unique<ResourceConfigValue>(
              config_value->config.CopyWithoutSdkVersion(),
              config_value->config.CopyWithoutSdkVersion(),
              config_value->product);
              config_value->product);
      if (context->IsVerbose()) {
        context->GetDiagnostics()->Note(android::DiagMessage()
                                        << "overriding resource: " << entry->name
                                        << ", removing SDK version from configuration "
                                        << config_value->config.to_string());
      }
      new_value->value = std::move(config_value->value);
      new_value->value = std::move(config_value->value);
      config_value = std::move(new_value);
      config_value = std::move(new_value);


@@ -147,10 +160,14 @@ static void CollapseVersions(int min_sdk, ResourceEntry* entry) {
bool VersionCollapser::Consume(IAaptContext* context, ResourceTable* table) {
bool VersionCollapser::Consume(IAaptContext* context, ResourceTable* table) {
  TRACE_NAME("VersionCollapser::Consume");
  TRACE_NAME("VersionCollapser::Consume");
  const int min_sdk = context->GetMinSdkVersion();
  const int min_sdk = context->GetMinSdkVersion();
  if (context->IsVerbose()) {
    context->GetDiagnostics()->Note(android::DiagMessage()
                                    << "Running VersionCollapser with minSdk = " << min_sdk);
  }
  for (auto& package : table->packages) {
  for (auto& package : table->packages) {
    for (auto& type : package->types) {
    for (auto& type : package->types) {
      for (auto& entry : type->entries) {
      for (auto& entry : type->entries) {
        CollapseVersions(min_sdk, entry.get());
        CollapseVersions(context, min_sdk, entry.get());
      }
      }
    }
    }
  }
  }