loader: Override doesn't include explicit layers
When the override layer is present, it would append any layers
found as if they were implicit. This change prevents non-implicit
layers from being included in loaderScanForImplicitLayers when
the override layer is active.
Change-Id: I95a7555d68e72f3d801bb27e6cd0792611e4596f
diff --git a/loader/loader.c b/loader/loader.c
index 826518a..7d13739 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -4756,7 +4756,7 @@
continue;
}
- res = loaderAddLayerProperties(inst, instance_layers, json, false, file_str);
+ res = loaderAddLayerProperties(inst, instance_layers, json, true, file_str);
loader_instance_heap_free(inst, file_str);
cJSON_Delete(json);
@@ -4771,13 +4771,11 @@
// actually present in the available layer list
VerifyAllMetaLayers(inst, instance_layers, &override_layer_valid);
- if (override_layer_valid) {
- loaderRemoveLayersInBlacklist(inst, instance_layers);
- if (NULL != inst) {
+ if (override_layer_valid || implicit_metalayer_present) {
+ loaderRemoveLayersNotInImplicitMetaLayers(inst, instance_layers);
+ if (override_layer_valid && inst != NULL) {
inst->override_layer_present = true;
}
- } else if (implicit_metalayer_present) {
- loaderRemoveLayersNotInImplicitMetaLayers(inst, instance_layers);
}
out: