]> git.saurik.com Git - android/aapt.git/commitdiff
Merge branch 'readonly-p4-master'
authorRobert Greenwalt <>
Fri, 3 Apr 2009 06:37:35 +0000 (23:37 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Fri, 3 Apr 2009 06:37:35 +0000 (23:37 -0700)
ResourceTable.cpp
ResourceTable.h

index 6f71a1ed0d46947cdaf21cf81da1fe85b7e2c531..6e522a2c74c80a71b367e1f9a594e2897b1bf8b4 100644 (file)
@@ -1109,7 +1109,8 @@ status_t compileResourceFile(Bundle* bundle,
 
                 if (!localHasErrors) {
                     err = outTable->startBag(SourcePos(in->getPrintableSource(), block.getLineNumber()),
-                                             myPackage, curType, ident, parentIdent, &curParams);
+                                             myPackage, curType, ident, parentIdent, &curParams, 
+                                             overwrite);
                     if (err != NO_ERROR) {
                         hasErrors = localHasErrors = true;
                     }
@@ -1409,6 +1410,8 @@ status_t ResourceTable::startBag(const SourcePos& sourcePos,
                                  const ResTable_config* params,
                                  bool replace, bool isId)
 {
+    status_t result = NO_ERROR;
+
     // Check for adding entries in other packages...  for now we do
     // nothing.  We need to do the right thing here to support skinning.
     uint32_t rid = mAssets->getIncludedResources()
@@ -1442,8 +1445,12 @@ status_t ResourceTable::startBag(const SourcePos& sourcePos,
         }
         e->setParent(bagParent);
     }
-    
-    return e->makeItABag(sourcePos);
+
+    if ((result = e->makeItABag(sourcePos)) != NO_ERROR) {
+        return result;
+    }
+    return e->emptyBag(sourcePos);
 }
 
 status_t ResourceTable::addBag(const SourcePos& sourcePos,
@@ -2798,6 +2805,17 @@ status_t ResourceTable::Entry::addToBag(const SourcePos& sourcePos,
     return NO_ERROR;
 }
 
+status_t ResourceTable::Entry::emptyBag(const SourcePos& sourcePos)
+{
+    status_t err = makeItABag(sourcePos);
+    if (err != NO_ERROR) {
+        return err;
+    }
+
+    mBag.clear();
+    return NO_ERROR;
+}
+
 status_t ResourceTable::Entry::generateAttributes(ResourceTable* table,
                                                   const String16& package)
 {
index e8fbd9b7b7c75538e9d9f13d3e6cf8bdaaeb43c1..74ba326c2bf3c6969f29c705c6407f6ca93860cc 100644 (file)
@@ -254,7 +254,9 @@ public:
         String16 getParent() const { return mParent; }
 
         status_t makeItABag(const SourcePos& sourcePos);
-        
+
+        status_t emptyBag(const SourcePos& sourcePos);
         status_t setItem(const SourcePos& pos,
                          const String16& value,
                          const Vector<StringPool::entry_style_span>* style = NULL,