am 69920427: Merge "Fix a variety of small publicly-reported bugs."

* commit '69920427ea01421d34f3a7576bdd135527b20859':
  Fix a variety of small publicly-reported bugs.
This commit is contained in:
Elliott Hughes
2013-10-29 13:32:33 -07:00
committed by Android Git Automerger
8 changed files with 66 additions and 62 deletions

View File

@ -159,8 +159,8 @@ status_t BootAnimation::initTexture(void* buffer, size_t len)
SkBitmap bitmap; SkBitmap bitmap;
SkMemoryStream stream(buffer, len); SkMemoryStream stream(buffer, len);
SkImageDecoder* codec = SkImageDecoder::Factory(&stream); SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
codec->setDitherImage(false);
if (codec) { if (codec) {
codec->setDitherImage(false);
codec->decode(&stream, &bitmap, codec->decode(&stream, &bitmap,
SkBitmap::kARGB_8888_Config, SkBitmap::kARGB_8888_Config,
SkImageDecoder::kDecodePixels_Mode); SkImageDecoder::kDecodePixels_Mode);

View File

@ -335,6 +335,7 @@ static jint read_binder_stat(const char* stat)
// loop until we have the block that represents this process // loop until we have the block that represents this process
do { do {
if (fgets(line, 1024, fp) == 0) { if (fgets(line, 1024, fp) == 0) {
fclose(fp);
return -1; return -1;
} }
} while (strncmp(compare, line, len)); } while (strncmp(compare, line, len));
@ -344,13 +345,16 @@ static jint read_binder_stat(const char* stat)
do { do {
if (fgets(line, 1024, fp) == 0) { if (fgets(line, 1024, fp) == 0) {
fclose(fp);
return -1; return -1;
} }
} while (strncmp(compare, line, len)); } while (strncmp(compare, line, len));
// we have the line, now increment the line ptr to the value // we have the line, now increment the line ptr to the value
char* ptr = line + len; char* ptr = line + len;
return atoi(ptr); jint result = atoi(ptr);
fclose(fp);
return result;
} }
static jint android_os_Debug_getBinderSentTransactions(JNIEnv *env, jobject clazz) static jint android_os_Debug_getBinderSentTransactions(JNIEnv *env, jobject clazz)

View File

@ -395,7 +395,7 @@ static int pid_compare(const void* v1, const void* v2)
return *((const jint*)v1) - *((const jint*)v2); return *((const jint*)v1) - *((const jint*)v2);
} }
static jlong getFreeMemoryImpl(const char* const sums[], const int sumsLen[], int num) static jlong getFreeMemoryImpl(const char* const sums[], const size_t sumsLen[], size_t num)
{ {
int fd = open("/proc/meminfo", O_RDONLY); int fd = open("/proc/meminfo", O_RDONLY);
@ -414,7 +414,7 @@ static jlong getFreeMemoryImpl(const char* const sums[], const int sumsLen[], in
} }
buffer[len] = 0; buffer[len] = 0;
int numFound = 0; size_t numFound = 0;
jlong mem = 0; jlong mem = 0;
char* p = buffer; char* p = buffer;
@ -446,14 +446,14 @@ static jlong getFreeMemoryImpl(const char* const sums[], const int sumsLen[], in
static jlong android_os_Process_getFreeMemory(JNIEnv* env, jobject clazz) static jlong android_os_Process_getFreeMemory(JNIEnv* env, jobject clazz)
{ {
static const char* const sums[] = { "MemFree:", "Cached:", NULL }; static const char* const sums[] = { "MemFree:", "Cached:", NULL };
static const int sumsLen[] = { strlen("MemFree:"), strlen("Cached:"), 0 }; static const size_t sumsLen[] = { strlen("MemFree:"), strlen("Cached:"), 0 };
return getFreeMemoryImpl(sums, sumsLen, 2); return getFreeMemoryImpl(sums, sumsLen, 2);
} }
static jlong android_os_Process_getTotalMemory(JNIEnv* env, jobject clazz) static jlong android_os_Process_getTotalMemory(JNIEnv* env, jobject clazz)
{ {
static const char* const sums[] = { "MemTotal:", NULL }; static const char* const sums[] = { "MemTotal:", NULL };
static const int sumsLen[] = { strlen("MemTotal:"), 0 }; static const size_t sumsLen[] = { strlen("MemTotal:"), 0 };
return getFreeMemoryImpl(sums, sumsLen, 1); return getFreeMemoryImpl(sums, sumsLen, 1);
} }
@ -711,13 +711,13 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz,
jsize end = -1; jsize end = -1;
if ((mode&PROC_PARENS) != 0) { if ((mode&PROC_PARENS) != 0) {
while (buffer[i] != ')' && i < endIndex) { while (i < endIndex && buffer[i] != ')') {
i++; i++;
} }
end = i; end = i;
i++; i++;
} }
while (buffer[i] != term && i < endIndex) { while (i < endIndex && buffer[i] != term) {
i++; i++;
} }
if (end < 0) { if (end < 0) {
@ -727,7 +727,7 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz,
if (i < endIndex) { if (i < endIndex) {
i++; i++;
if ((mode&PROC_COMBINE) != 0) { if ((mode&PROC_COMBINE) != 0) {
while (buffer[i] == term && i < endIndex) { while (i < endIndex && buffer[i] == term) {
i++; i++;
} }
} }

View File

@ -688,7 +688,7 @@ const ResTable* AssetManager::getResTable(bool required) const
} }
} else { } else {
ALOGV("loading resource table %s\n", ap.path.string()); ALOGV("loading resource table %s\n", ap.path.string());
Asset* ass = const_cast<AssetManager*>(this)-> ass = const_cast<AssetManager*>(this)->
openNonAssetInPathLocked("resources.arsc", openNonAssetInPathLocked("resources.arsc",
Asset::ACCESS_BUFFER, Asset::ACCESS_BUFFER,
ap); ap);

View File

@ -133,7 +133,7 @@ bool ObbFile::parseObbFile(int fd)
{ {
lseek64(fd, fileLength - kFooterTagSize, SEEK_SET); lseek64(fd, fileLength - kFooterTagSize, SEEK_SET);
char *footer = new char[kFooterTagSize]; char footer[kFooterTagSize];
actual = TEMP_FAILURE_RETRY(read(fd, footer, kFooterTagSize)); actual = TEMP_FAILURE_RETRY(read(fd, footer, kFooterTagSize));
if (actual != kFooterTagSize) { if (actual != kFooterTagSize) {
ALOGW("couldn't read footer signature: %s\n", strerror(errno)); ALOGW("couldn't read footer signature: %s\n", strerror(errno));

View File

@ -452,10 +452,11 @@ static status_t do_9patch(const char* imageName, image_info* image)
int maxSizeXDivs = W * sizeof(int32_t); int maxSizeXDivs = W * sizeof(int32_t);
int maxSizeYDivs = H * sizeof(int32_t); int maxSizeYDivs = H * sizeof(int32_t);
int32_t* xDivs = (int32_t*) malloc(maxSizeXDivs); int32_t* xDivs = image->info9Patch.xDivs = (int32_t*) malloc(maxSizeXDivs);
int32_t* yDivs = (int32_t*) malloc(maxSizeYDivs); int32_t* yDivs = image->info9Patch.yDivs = (int32_t*) malloc(maxSizeYDivs);
uint8_t numXDivs = 0; uint8_t numXDivs = 0;
uint8_t numYDivs = 0; uint8_t numYDivs = 0;
int8_t numColors; int8_t numColors;
int numRows; int numRows;
int numCols; int numCols;
@ -510,6 +511,10 @@ static status_t do_9patch(const char* imageName, image_info* image)
goto getout; goto getout;
} }
// Copy patch size data into image...
image->info9Patch.numXDivs = numXDivs;
image->info9Patch.numYDivs = numYDivs;
// Find left and right of padding area... // Find left and right of padding area...
if (get_horizontal_ticks(image->rows[H-1], W, transparent, false, &image->info9Patch.paddingLeft, if (get_horizontal_ticks(image->rows[H-1], W, transparent, false, &image->info9Patch.paddingLeft,
&image->info9Patch.paddingRight, &errorMsg, NULL, false) != NO_ERROR) { &image->info9Patch.paddingRight, &errorMsg, NULL, false) != NO_ERROR) {
@ -545,12 +550,6 @@ static status_t do_9patch(const char* imageName, image_info* image)
image->layoutBoundsRight, image->layoutBoundsBottom)); image->layoutBoundsRight, image->layoutBoundsBottom));
} }
// Copy patch data into image
image->info9Patch.numXDivs = numXDivs;
image->info9Patch.numYDivs = numYDivs;
image->info9Patch.xDivs = xDivs;
image->info9Patch.yDivs = yDivs;
// If padding is not yet specified, take values from size. // If padding is not yet specified, take values from size.
if (image->info9Patch.paddingLeft < 0) { if (image->info9Patch.paddingLeft < 0) {
image->info9Patch.paddingLeft = xDivs[0]; image->info9Patch.paddingLeft = xDivs[0];

View File

@ -2193,10 +2193,10 @@ status_t writeResourceSymbols(Bundle* bundle, const sp<AaptAssets>& assets,
status_t err = writeSymbolClass(fp, assets, includePrivate, symbols, status_t err = writeSymbolClass(fp, assets, includePrivate, symbols,
className, 0, bundle->getNonConstantId()); className, 0, bundle->getNonConstantId());
fclose(fp);
if (err != NO_ERROR) { if (err != NO_ERROR) {
return err; return err;
} }
fclose(fp);
if (textSymbolsDest != NULL && R == className) { if (textSymbolsDest != NULL && R == className) {
String8 textDest(textSymbolsDest); String8 textDest(textSymbolsDest);
@ -2215,10 +2215,10 @@ status_t writeResourceSymbols(Bundle* bundle, const sp<AaptAssets>& assets,
status_t err = writeTextSymbolClass(fp, assets, includePrivate, symbols, status_t err = writeTextSymbolClass(fp, assets, includePrivate, symbols,
className); className);
fclose(fp);
if (err != NO_ERROR) { if (err != NO_ERROR) {
return err; return err;
} }
fclose(fp);
} }
// If we were asked to generate a dependency file, we'll go ahead and add this R.java // If we were asked to generate a dependency file, we'll go ahead and add this R.java

View File

@ -837,6 +837,7 @@ parse_preprocessed_file(const string& filename)
else { else {
fprintf(stderr, "%s:%d: bad type in line: %s\n", fprintf(stderr, "%s:%d: bad type in line: %s\n",
filename.c_str(), lineno, line); filename.c_str(), lineno, line);
fclose(f);
return 1; return 1;
} }
err = gather_types(filename.c_str(), doc); err = gather_types(filename.c_str(), doc);