MCPcopy Create free account
hub / github.com/CyanogenMod/android_frameworks_base / assignResourceIds

Method assignResourceIds

tools/aapt/ResourceTable.cpp:2430–2531  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2428}
2429
2430status_t ResourceTable::assignResourceIds()
2431{
2432 const size_t N = mOrderedPackages.size();
2433 size_t pi;
2434 status_t firstError = NO_ERROR;
2435
2436 // First generate all bag attributes and assign indices.
2437 for (pi=0; pi<N; pi++) {
2438 sp<Package> p = mOrderedPackages.itemAt(pi);
2439 if (p == NULL || p->getTypes().size() == 0) {
2440 // Empty, skip!
2441 continue;
2442 }
2443
2444 status_t err = p->applyPublicTypeOrder();
2445 if (err != NO_ERROR && firstError == NO_ERROR) {
2446 firstError = err;
2447 }
2448
2449 // Generate attributes...
2450 const size_t N = p->getOrderedTypes().size();
2451 size_t ti;
2452 for (ti=0; ti<N; ti++) {
2453 sp<Type> t = p->getOrderedTypes().itemAt(ti);
2454 if (t == NULL) {
2455 continue;
2456 }
2457 const size_t N = t->getOrderedConfigs().size();
2458 for (size_t ci=0; ci<N; ci++) {
2459 sp<ConfigList> c = t->getOrderedConfigs().itemAt(ci);
2460 if (c == NULL) {
2461 continue;
2462 }
2463 const size_t N = c->getEntries().size();
2464 for (size_t ei=0; ei<N; ei++) {
2465 sp<Entry> e = c->getEntries().valueAt(ei);
2466 if (e == NULL) {
2467 continue;
2468 }
2469 status_t err = e->generateAttributes(this, p->getName());
2470 if (err != NO_ERROR && firstError == NO_ERROR) {
2471 firstError = err;
2472 }
2473 }
2474 }
2475 }
2476
2477 const SourcePos unknown(String8("????"), 0);
2478 sp<Type> attr = p->getType(String16("attr"), unknown);
2479
2480 // Assign indices...
2481 for (ti=0; ti<N; ti++) {
2482 sp<Type> t = p->getOrderedTypes().itemAt(ti);
2483 if (t == NULL) {
2484 continue;
2485 }
2486 err = t->applyPublicEntryOrder();
2487 if (err != NO_ERROR && firstError == NO_ERROR) {

Callers 1

compileXmlFileFunction · 0.45

Calls 15

applyPublicTypeOrderMethod · 0.80
generateAttributesMethod · 0.80
applyPublicEntryOrderMethod · 0.80
setEntryIndexMethod · 0.80
getResIdMethod · 0.80
stringMethod · 0.80
String16Class · 0.70
sizeMethod · 0.65
getNameMethod · 0.65
getTypeMethod · 0.65
errorMethod · 0.65
getEntriesMethod · 0.45

Tested by

no test coverage detected