Merge change 3577 into donut
* changes: Make aapt Error out when an overlay adds a string.
This commit is contained in:
@@ -1516,8 +1516,9 @@ status_t ResourceTable::addEntry(const SourcePos& sourcePos,
|
|||||||
String8(value).string());
|
String8(value).string());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sp<Entry> e = getEntry(package, type, name, sourcePos, params, doSetIndex);
|
sp<Entry> e = getEntry(package, type, name, sourcePos, overwrite,
|
||||||
|
params, doSetIndex);
|
||||||
if (e == NULL) {
|
if (e == NULL) {
|
||||||
return UNKNOWN_ERROR;
|
return UNKNOWN_ERROR;
|
||||||
}
|
}
|
||||||
@@ -1560,8 +1561,7 @@ status_t ResourceTable::startBag(const SourcePos& sourcePos,
|
|||||||
String8(name).string());
|
String8(name).string());
|
||||||
return UNKNOWN_ERROR;
|
return UNKNOWN_ERROR;
|
||||||
}
|
}
|
||||||
|
sp<Entry> e = getEntry(package, type, name, sourcePos, overlay, params);
|
||||||
sp<Entry> e = getEntry(package, type, name, sourcePos, params);
|
|
||||||
if (e == NULL) {
|
if (e == NULL) {
|
||||||
return UNKNOWN_ERROR;
|
return UNKNOWN_ERROR;
|
||||||
}
|
}
|
||||||
@@ -1615,8 +1615,7 @@ status_t ResourceTable::addBag(const SourcePos& sourcePos,
|
|||||||
sourcePos.file.striing(), sourcePos.line, String8(type).string());
|
sourcePos.file.striing(), sourcePos.line, String8(type).string());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
sp<Entry> e = getEntry(package, type, name, sourcePos, replace, params);
|
||||||
sp<Entry> e = getEntry(package, type, name, sourcePos, params);
|
|
||||||
if (e == NULL) {
|
if (e == NULL) {
|
||||||
return UNKNOWN_ERROR;
|
return UNKNOWN_ERROR;
|
||||||
}
|
}
|
||||||
@@ -2899,7 +2898,7 @@ status_t ResourceTable::Entry::setItem(const SourcePos& sourcePos,
|
|||||||
mItem.sourcePos.file.string(), mItem.sourcePos.line);
|
mItem.sourcePos.file.string(), mItem.sourcePos.line);
|
||||||
return UNKNOWN_ERROR;
|
return UNKNOWN_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
mType = TYPE_ITEM;
|
mType = TYPE_ITEM;
|
||||||
mItem = item;
|
mItem = item;
|
||||||
mItemFormat = format;
|
mItemFormat = format;
|
||||||
@@ -3219,11 +3218,17 @@ status_t ResourceTable::Type::addPublic(const SourcePos& sourcePos,
|
|||||||
sp<ResourceTable::Entry> ResourceTable::Type::getEntry(const String16& entry,
|
sp<ResourceTable::Entry> ResourceTable::Type::getEntry(const String16& entry,
|
||||||
const SourcePos& sourcePos,
|
const SourcePos& sourcePos,
|
||||||
const ResTable_config* config,
|
const ResTable_config* config,
|
||||||
bool doSetIndex)
|
bool doSetIndex,
|
||||||
|
bool overlay)
|
||||||
{
|
{
|
||||||
int pos = -1;
|
int pos = -1;
|
||||||
sp<ConfigList> c = mConfigs.valueFor(entry);
|
sp<ConfigList> c = mConfigs.valueFor(entry);
|
||||||
if (c == NULL) {
|
if (c == NULL) {
|
||||||
|
if (overlay == true) {
|
||||||
|
sourcePos.error("Resource %s appears in overlay but not"
|
||||||
|
" in the base package.\n", String8(entry).string());
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
c = new ConfigList(entry, sourcePos);
|
c = new ConfigList(entry, sourcePos);
|
||||||
mConfigs.add(entry, c);
|
mConfigs.add(entry, c);
|
||||||
pos = (int)mOrderedConfigs.size();
|
pos = (int)mOrderedConfigs.size();
|
||||||
@@ -3522,6 +3527,7 @@ sp<ResourceTable::Entry> ResourceTable::getEntry(const String16& package,
|
|||||||
const String16& type,
|
const String16& type,
|
||||||
const String16& name,
|
const String16& name,
|
||||||
const SourcePos& sourcePos,
|
const SourcePos& sourcePos,
|
||||||
|
bool overlay,
|
||||||
const ResTable_config* config,
|
const ResTable_config* config,
|
||||||
bool doSetIndex)
|
bool doSetIndex)
|
||||||
{
|
{
|
||||||
@@ -3529,7 +3535,7 @@ sp<ResourceTable::Entry> ResourceTable::getEntry(const String16& package,
|
|||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return t->getEntry(name, sourcePos, config, doSetIndex);
|
return t->getEntry(name, sourcePos, config, doSetIndex, overlay);
|
||||||
}
|
}
|
||||||
|
|
||||||
sp<const ResourceTable::Entry> ResourceTable::getEntry(uint32_t resID,
|
sp<const ResourceTable::Entry> ResourceTable::getEntry(uint32_t resID,
|
||||||
|
|||||||
@@ -418,7 +418,8 @@ public:
|
|||||||
sp<Entry> getEntry(const String16& entry,
|
sp<Entry> getEntry(const String16& entry,
|
||||||
const SourcePos& pos,
|
const SourcePos& pos,
|
||||||
const ResTable_config* config = NULL,
|
const ResTable_config* config = NULL,
|
||||||
bool doSetIndex = false);
|
bool doSetIndex = false,
|
||||||
|
bool overlay = false);
|
||||||
|
|
||||||
const SourcePos& getFirstPublicSourcePos() const { return *mFirstPublicSourcePos; }
|
const SourcePos& getFirstPublicSourcePos() const { return *mFirstPublicSourcePos; }
|
||||||
|
|
||||||
@@ -502,6 +503,7 @@ private:
|
|||||||
const String16& type,
|
const String16& type,
|
||||||
const String16& name,
|
const String16& name,
|
||||||
const SourcePos& pos,
|
const SourcePos& pos,
|
||||||
|
bool overlay,
|
||||||
const ResTable_config* config = NULL,
|
const ResTable_config* config = NULL,
|
||||||
bool doSetIndex = false);
|
bool doSetIndex = false);
|
||||||
sp<const Entry> getEntry(uint32_t resID,
|
sp<const Entry> getEntry(uint32_t resID,
|
||||||
|
|||||||
Reference in New Issue
Block a user