Merge "Report an offset change in a live wallpaper when the wallpaper is resized. Bug #2489288"
diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp
index 57192a5..34cd9d1 100644
--- a/libs/ui/EventHub.cpp
+++ b/libs/ui/EventHub.cpp
@@ -608,7 +608,7 @@
     // consider up through the function keys; we don't want to include
     // ones after that (play cd etc) so we don't mistakenly consider a
     // controller to be a keyboard.
-    uint8_t key_bitmask[(KEY_PLAYCD+1)/8];
+    uint8_t key_bitmask[(KEY_MAX+1)/8];
     memset(key_bitmask, 0, sizeof(key_bitmask));
     LOGV("Getting keys...");
     if (ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(key_bitmask)), key_bitmask) >= 0) {
diff --git a/libs/utils/ResourceTypes.cpp b/libs/utils/ResourceTypes.cpp
index 6da11b5..38d8412 100644
--- a/libs/utils/ResourceTypes.cpp
+++ b/libs/utils/ResourceTypes.cpp
@@ -1850,7 +1850,7 @@
         if (Res_GETPACKAGE(resID)+1 == 0) {
             LOGW("No package identifier when getting name for resource number 0x%08x", resID);
         } else {
-            LOGV("Resources don't contain package for resource number 0x%08x", resID);
+            LOGW("No known package when getting name for resource number 0x%08x", resID);
         }
         return false;
     }
@@ -1898,9 +1898,9 @@
 
     if (p < 0) {
         if (Res_GETPACKAGE(resID)+1 == 0) {
-            LOGW("No package identifier when getting name for resource number 0x%08x", resID);
+            LOGW("No package identifier when getting value for resource number 0x%08x", resID);
         } else {
-            LOGV("Resources don't contain package for resource number 0x%08x", resID);
+            LOGW("No known package when getting value for resource number 0x%08x", resID);
         }
         return BAD_INDEX;
     }
@@ -1921,7 +1921,7 @@
     const PackageGroup* const grp = mPackageGroups[p];
     if (grp == NULL) {
         LOGW("Bad identifier when getting value for resource number 0x%08x", resID);
-        return false;
+        return BAD_INDEX;
     }
     size_t ip = grp->packages.size();
     while (ip > 0) {
@@ -2003,7 +2003,7 @@
         return bestPackage->header->index;
     }
 
-    return BAD_INDEX;
+    return BAD_VALUE;
 }
 
 ssize_t ResTable::resolveReference(Res_value* value, ssize_t blockIndex,
@@ -2018,6 +2018,9 @@
         uint32_t newFlags = 0;
         const ssize_t newIndex = getResource(value->data, value, true, &newFlags,
                 outConfig);
+        if (newIndex == BAD_INDEX) {
+            return BAD_INDEX;
+        }
         TABLE_THEME(LOGI("Resolving reference %p: newIndex=%d, type=0x%x, data=%p\n",
              (void*)lastRef, (int)newIndex, (int)value->dataType, (void*)value->data));
         //printf("Getting reference 0x%08x: newIndex=%d\n", value->data, newIndex);