Merge "Memory leak in parsePackage"
This commit is contained in:
@@ -5405,23 +5405,33 @@ status_t ResTable::parsePackage(const ResTable_package* const pkg,
|
|||||||
return (mError=err);
|
return (mError=err);
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("Adding new package id %d at index %d\n", id, idx);
|
err = group->packages.add(package);
|
||||||
err = mPackageGroups.add(group);
|
|
||||||
if (err < NO_ERROR) {
|
if (err < NO_ERROR) {
|
||||||
|
delete group;
|
||||||
|
delete package;
|
||||||
return (mError=err);
|
return (mError=err);
|
||||||
}
|
}
|
||||||
group->basePackage = package;
|
group->basePackage = package;
|
||||||
|
|
||||||
|
//printf("Adding new package id %d at index %d\n", id, idx);
|
||||||
|
err = mPackageGroups.add(group);
|
||||||
|
if (err < NO_ERROR) {
|
||||||
|
delete group;
|
||||||
|
return (mError=err);
|
||||||
|
}
|
||||||
|
|
||||||
mPackageMap[id] = (uint8_t)idx;
|
mPackageMap[id] = (uint8_t)idx;
|
||||||
} else {
|
} else {
|
||||||
group = mPackageGroups.itemAt(idx-1);
|
group = mPackageGroups.itemAt(idx-1);
|
||||||
if (group == NULL) {
|
if (group == NULL) {
|
||||||
|
delete package;
|
||||||
return (mError=UNKNOWN_ERROR);
|
return (mError=UNKNOWN_ERROR);
|
||||||
}
|
}
|
||||||
}
|
err = group->packages.add(package);
|
||||||
err = group->packages.add(package);
|
if (err < NO_ERROR) {
|
||||||
if (err < NO_ERROR) {
|
delete package;
|
||||||
return (mError=err);
|
return (mError=err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LOG_ALWAYS_FATAL("Package id out of range");
|
LOG_ALWAYS_FATAL("Package id out of range");
|
||||||
|
|||||||
Reference in New Issue
Block a user