Mercurial > hg > audiodb
changeset 210:7562a833a951
Deal with x86-64 OS X vs Linux structure padding ABI.
author | mas01cr |
---|---|
date | Thu, 29 Nov 2007 16:31:09 +0000 |
parents | 7c9feaceeab5 |
children | 3a81da6fb1d7 |
files | audioDB.cpp audioDB.h |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/audioDB.cpp Tue Nov 27 18:14:19 2007 +0000 +++ b/audioDB.cpp Thu Nov 29 16:31:09 2007 +0000 @@ -454,6 +454,7 @@ dbH->numFiles = 0; dbH->dim = 0; dbH->flags = 0; + dbH->headerSize = O2_HEADERSIZE; dbH->length = 0; dbH->fileTableOffset = ALIGN_PAGE_UP(O2_HEADERSIZE); dbH->trackTableOffset = ALIGN_PAGE_UP(dbH->fileTableOffset + O2_FILETABLESIZE*maxfiles); @@ -508,7 +509,11 @@ } if(dbH->version != O2_FORMAT_VERSION) { - error("database file has incorect version", dbName); + error("database file has incorrect version", dbName); + } + + if(dbH->headerSize != O2_HEADERSIZE) { + error("sizeof(dbTableHeader) unexpected: platform ABI mismatch?", dbName); } #define CHECKED_MMAP(type, var, start, length) \
--- a/audioDB.h Tue Nov 27 18:14:19 2007 +0000 +++ b/audioDB.h Thu Nov 29 16:31:09 2007 +0000 @@ -50,7 +50,7 @@ #define O2_OLD_MAGIC ('O'|'2'<<8|'D'<<16|'B'<<24) #define O2_MAGIC ('o'|'2'<<8|'d'<<16|'b'<<24) -#define O2_FORMAT_VERSION (3U) +#define O2_FORMAT_VERSION (4U) #define O2_DEFAULT_POINTNN (10U) #define O2_DEFAULT_TRACKNN (10U) @@ -95,12 +95,13 @@ using namespace std; -typedef struct dbTableHeader{ +typedef struct dbTableHeader { uint32_t magic; uint32_t version; uint32_t numFiles; uint32_t dim; uint32_t flags; + uint32_t headerSize; off_t length; off_t fileTableOffset; off_t trackTableOffset;