From 83df8423e97498b95368534e4c99f66006d2d06e Mon Sep 17 00:00:00 2001 From: Sean Lu Date: Mon, 26 Jun 2017 18:19:28 +0800 Subject: [PATCH] [Resources] house keeping in TypeList Symptom: Type was freed but still may be access Root Cause: TypeList not cleared Solution: clear the TypeList Project: AOSP Note: None Test: Yes Change-Id: I00225165a30d15a299b7a483ea393b4447d2a3fc --- libs/androidfw/ResourceTypes.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 38d2a588b5945..b3491d0cee83c 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -3203,13 +3203,14 @@ struct ResTable::PackageGroup clearBagCache(); const size_t numTypes = types.size(); for (size_t i = 0; i < numTypes; i++) { - const TypeList& typeList = types[i]; + TypeList& typeList = types.editItemAt(i); const size_t numInnerTypes = typeList.size(); for (size_t j = 0; j < numInnerTypes; j++) { if (typeList[j]->package->owner == owner) { delete typeList[j]; } } + typeList.clear(); } const size_t N = packages.size();