diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-26 14:19:59 -0700 | 
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-06-26 14:19:59 -0700 | 
| commit | d09f86ce175fad6ddbd446363f327dfa0575a1d2 (patch) | |
| tree | 1402e4c2472e7e4ec6e09e51d608d29e4f40f7d9 | |
| parent | 17a80081a42410f541a220ab7e6afc64fc6cc399 (diff) | |
| parent | 568bc32344dce841c8f6958f1a65ff839a1b64c0 (diff) | |
| download | frameworks_base-d09f86ce175fad6ddbd446363f327dfa0575a1d2.zip frameworks_base-d09f86ce175fad6ddbd446363f327dfa0575a1d2.tar.gz frameworks_base-d09f86ce175fad6ddbd446363f327dfa0575a1d2.tar.bz2 | |
Merge changes 5548,5549 into donut
* changes:
  Better (and less) logging from backup.
  Add an extra null terminator.  String8::unlockBuffer is supposed to be doing this, but it's not and I can't figure out why.  This makes BackupHelperDispatcher able to read the keys correctly.
| -rw-r--r-- | core/jni/android_backup_BackupHelperDispatcher.cpp | 12 | ||||
| -rw-r--r-- | libs/utils/BackupData.cpp | 5 | ||||
| -rw-r--r-- | libs/utils/BackupHelpers.cpp | 7 | 
3 files changed, 19 insertions, 5 deletions
| diff --git a/core/jni/android_backup_BackupHelperDispatcher.cpp b/core/jni/android_backup_BackupHelperDispatcher.cpp index 24d529b..2e3f0b9 100644 --- a/core/jni/android_backup_BackupHelperDispatcher.cpp +++ b/core/jni/android_backup_BackupHelperDispatcher.cpp @@ -87,6 +87,14 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)          }      } +#if 0 +    LOGD("chunk header:"); +    LOGD("  headerSize=%d", flattenedHeader.headerSize); +    LOGD("  version=0x%08x", flattenedHeader.version); +    LOGD("  dataSize=%d", flattenedHeader.dataSize); +    LOGD("  nameLength=%d", flattenedHeader.nameLength); +#endif +      if (flattenedHeader.dataSize < 0 || flattenedHeader.nameLength < 0 ||              remainingHeader < flattenedHeader.nameLength) {          LOGW("Malformed V1 header remainingHeader=%d dataSize=%d nameLength=%d", remainingHeader, @@ -101,13 +109,12 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)      }      amt = read(fd, buf, flattenedHeader.nameLength); +    buf[flattenedHeader.nameLength] = 0;      keyPrefix.unlockBuffer(flattenedHeader.nameLength);      remainingHeader -= flattenedHeader.nameLength; -    LOGD("remainingHeader=%d", remainingHeader); -      if (remainingHeader > 0) {          lseek(fd, remainingHeader, SEEK_CUR);      } @@ -183,6 +190,7 @@ writeHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj,      header.headerSize = sizeof(chunk_header_v1) + header.nameLength + namePadding;      header.version = VERSION_1_HEADER; +    header.dataSize = prevPos - (pos + header.headerSize);      lseek(fd, pos, SEEK_SET);      err = write(fd, &header, sizeof(chunk_header_v1)); diff --git a/libs/utils/BackupData.cpp b/libs/utils/BackupData.cpp index 0868cff..cce754a 100644 --- a/libs/utils/BackupData.cpp +++ b/libs/utils/BackupData.cpp @@ -107,7 +107,10 @@ BackupDataWriter::WriteEntityHeader(const String8& key, size_t dataSize)      } else {          k = key;      } -    LOGD("m_keyPrefix=%s key=%s k=%s", m_keyPrefix.string(), key.string(), k.string()); +    if (true) { +        LOGD("Writing entity: prefix='%s' key='%s' dataSize=%d", m_keyPrefix.string(), key.string(), +                dataSize); +    }      entity_header_v1 header;      ssize_t keyLen; diff --git a/libs/utils/BackupHelpers.cpp b/libs/utils/BackupHelpers.cpp index 99a4abc..4ad9b51 100644 --- a/libs/utils/BackupHelpers.cpp +++ b/libs/utils/BackupHelpers.cpp @@ -68,11 +68,15 @@ struct file_metadata_v1 {  const static int CURRENT_METADATA_VERSION = 1; -#if 1 // TEST_BACKUP_HELPERS +#if 1 +#define LOGP(f, x...) +#else +#if TEST_BACKUP_HELPERS  #define LOGP(f, x...) printf(f "\n", x)  #else  #define LOGP(x...) LOGD(x)  #endif +#endif  const static int ROUND_UP[4] = { 0, 3, 2, 1 }; @@ -349,7 +353,6 @@ back_up_files(int oldSnapshotFD, BackupDataWriter* dataStream, int newSnapshotFD          err = stat(file, &st);          if (err != 0) { -            LOGW("Error stating file %s", file);              r.deleted = true;          } else {              r.deleted = false; | 
