# HG changeset patch # User mas01cr # Date 1192189058 0 # Node ID e800eac265c3e672cfee580dcd6aacaa546c6a78 # Parent 531ce51628617878bf2987396728099e36a082c5 Towards endian-neutrality, step 2. trackTable[x] is defined to be in network byte order on disk and in memory, so access through ntohl() and htonl() as appropriate. diff -r 531ce5162861 -r e800eac265c3 audioDB.cpp --- a/audioDB.cpp Fri Oct 12 11:20:35 2007 +0000 +++ b/audioDB.cpp Fri Oct 12 11:37:38 2007 +0000 @@ -574,9 +574,7 @@ memcpy (db, dbH, sizeof(dbTableHeaderT)); // Update track to file index map - //memcpy (db+trackTableOffset+(dbH->numFiles-1)*sizeof(unsigned), &numVectors, sizeof(unsigned)); - //memcpy (trackTable+dbH->numFiles-1, &numVectors, sizeof(unsigned)); - *(trackTable + ntohl(dbH->numFiles) - 1) = numVectors; + *(trackTable + ntohl(dbH->numFiles) - 1) = htonl(numVectors); // Update the feature database memcpy (db+ntohl(dbH->dataOffset)+insertoffset, indata+sizeof(int), statbuf.st_size-sizeof(int)); @@ -795,9 +793,7 @@ memcpy (db, dbH, sizeof(dbTableHeaderT)); // Update track to file index map - //memcpy (db+trackTableOffset+(dbH->numFiles-1)*sizeof(unsigned), &numVectors, sizeof(unsigned)); - //memcpy (trackTable+dbH->numFiles-1, &numVectors, sizeof(unsigned)); - *(trackTable + ntohl(dbH->numFiles) - 1) = numVectors; + *(trackTable + ntohl(dbH->numFiles) - 1) = htonl(numVectors); // Update the feature database memcpy (db+ntohl(dbH->dataOffset)+insertoffset, indata+sizeof(int), statbuf.st_size-sizeof(int)); @@ -886,9 +882,9 @@ unsigned dudCount=0; unsigned nullCount=0; for(unsigned k=0; knumFiles); k++){ - if(trackTable[k]numFiles); k++){ - cout << fileTable+k*O2_FILETABLESIZE << " " << trackTable[k] << endl; - j+=trackTable[k]; + cout << fileTable+k*O2_FILETABLESIZE << " " << ntohl(trackTable[k]) << endl; + j+=ntohl(trackTable[k]); } status(dbName); @@ -1101,10 +1097,10 @@ // Scan for key unsigned cumTrack=0; for(l=0 ; lnumFiles); l++){ - cumTrack+=trackTable[l]; + cumTrack+=ntohl(trackTable[l]); if(sIndexes[k]Qpos[k]=qIndexes[k]; unsigned cumTrack=0; for(l=0 ; lnumFiles); l++){ - cumTrack+=trackTable[l]; + cumTrack+=ntohl(trackTable[l]); if(sIndexes[k]Rlist[k], "%s", fileTable+l*O2_FILETABLESIZE); break; } } - adbQueryResult->Spos[k]=sIndexes[k]+trackTable[l]-cumTrack; + adbQueryResult->Spos[k]=sIndexes[k]+ntohl(trackTable[l])-cumTrack; } } @@ -1229,7 +1225,7 @@ meanDBdur = new double[ntohl(dbH->numFiles)]; for(k=0; knumFiles); k++){ meanDBdur[k]=0.0; - for(j=0; jnumFiles);k++){ trackOffsetTable[k]=cumTrack; - cumTrack+=trackTable[k]*ntohl(dbH->dim); + cumTrack+=ntohl(trackTable[k])*ntohl(dbH->dim); } char nextKey[MAXSTR]; @@ -1271,7 +1267,7 @@ trackOffset=trackOffsetTable[track]; // numDoubles offset trackIndexOffset=trackOffset/ntohl(dbH->dim); // numVectors offset if(verbosity>7) { - cerr << track << "." << trackOffset/(ntohl(dbH->dim)) << "." << trackTable[track] << " | ";cerr.flush(); + cerr << track << "." << trackOffset/(ntohl(dbH->dim)) << "." << ntohl(trackTable[track]) << " | ";cerr.flush(); } if(ntohl(dbH->flags) & O2_FLAG_L2NORM) @@ -1283,7 +1279,7 @@ else j=numVectors; while(j--){ - k=trackTable[track]; // number of vectors in track + k=ntohl(trackTable[track]); // number of vectors in track data=dataBuf+trackOffset; // data for track while(k--){ thisDist=0; @@ -1306,7 +1302,7 @@ } distances[n]=thisDist; qIndexes[n]=numVectors-j-1; - sIndexes[n]=trackTable[track]-k-1; + sIndexes[n]=ntohl(trackTable[track])-k-1; break; } } @@ -1458,14 +1454,14 @@ memcpy(sNorm, l2normTable, dbVectors*sizeof(double)); double* snPtr = sNorm; for(i=0; inumFiles); i++){ - if(trackTable[i]>=sequenceLength){ + if(ntohl(trackTable[i])>=sequenceLength){ tmp1=*snPtr; j=1; w=sequenceLength-1; while(w--) *snPtr+=snPtr[j++]; ps = snPtr+1; - w=trackTable[i]-sequenceLength; // +1 - 1 + w=ntohl(trackTable[i])-sequenceLength; // +1 - 1 while(w--){ tmp2=*ps; *ps=*(ps-1)-tmp1+*(ps+sequenceLength-1); @@ -1473,13 +1469,13 @@ ps++; } ps = snPtr; - w=trackTable[i]-sequenceLength+1; + w=ntohl(trackTable[i])-sequenceLength+1; while(w--){ *ps=sqrt(*ps); ps++; } } - snPtr+=trackTable[i]; + snPtr+=ntohl(trackTable[i]); } double* pn = sMeanL2; @@ -1489,18 +1485,18 @@ ps=sNorm; unsigned processedTracks=0; for(i=0; inumFiles); i++){ - if(trackTable[i]>sequenceLength-1){ - w = trackTable[i]-sequenceLength+1; + if(ntohl(trackTable[i])>sequenceLength-1){ + w = ntohl(trackTable[i])-sequenceLength+1; pn = sMeanL2+i; *pn=0; while(w--) if(*ps>0) *pn+=*ps++; - *pn/=trackTable[i]-sequenceLength+1; + *pn/=ntohl(trackTable[i])-sequenceLength+1; SILENCE_THRESH+=*pn; processedTracks++; } - ps = sNorm + trackTable[i]; + ps = sNorm + ntohl(trackTable[i]); } if(verbosity>1) { cerr << "processedTracks: " << processedTracks << endl; @@ -1603,7 +1599,7 @@ assert(meanDBdur); for(k=0; knumFiles); k++){ meanDBdur[k]=0.0; - for(j=0; jnumFiles);k++){ trackOffsetTable[k]=cumTrack; - cumTrack+=trackTable[k]*ntohl(dbH->dim); + cumTrack+=ntohl(trackTable[k])*ntohl(dbH->dim); } char nextKey [MAXSTR]; @@ -1671,28 +1667,28 @@ trackOffset=trackOffsetTable[track]; // numDoubles offset trackIndexOffset=trackOffset/ntohl(dbH->dim); // numVectors offset - if(sequenceLength<=trackTable[track]){ // test for short sequences + if(sequenceLength<=ntohl(trackTable[track])){ // test for short sequences if(verbosity>7) { - cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); + cerr << track << "." << trackIndexOffset << "." << ntohl(trackTable[track]) << " | ";cerr.flush(); } // Sum products matrix for(j=0; jdim); sp=dataBuf+trackOffset+k*ntohl(dbH->dim); DD[j][k]=0.0; // Initialize matched filter array @@ -1711,7 +1707,7 @@ for(j=0; j10) { cerr << thisDist << " " << qNorm[j] << " " << sNorm[trackIndexOffset+k] << endl; @@ -1957,14 +1953,14 @@ memcpy(sNorm, l2normTable, dbVectors*sizeof(double)); double* snPtr = sNorm; for(i=0; inumFiles); i++){ - if(trackTable[i]>=sequenceLength){ + if(ntohl(trackTable[i])>=sequenceLength){ tmp1=*snPtr; j=1; w=sequenceLength-1; while(w--) *snPtr+=snPtr[j++]; ps = snPtr+1; - w=trackTable[i]-sequenceLength; // +1 - 1 + w=ntohl(trackTable[i])-sequenceLength; // +1 - 1 while(w--){ tmp2=*ps; *ps=*(ps-1)-tmp1+*(ps+sequenceLength-1); @@ -1972,13 +1968,13 @@ ps++; } ps = snPtr; - w=trackTable[i]-sequenceLength+1; + w=ntohl(trackTable[i])-sequenceLength+1; while(w--){ *ps=sqrt(*ps); ps++; } } - snPtr+=trackTable[i]; + snPtr+=ntohl(trackTable[i]); } double* pn = sMeanL2; @@ -1988,18 +1984,18 @@ ps=sNorm; unsigned processedTracks=0; for(i=0; inumFiles); i++){ - if(trackTable[i]>sequenceLength-1){ - w = trackTable[i]-sequenceLength+1; + if(ntohl(trackTable[i])>sequenceLength-1){ + w = ntohl(trackTable[i])-sequenceLength+1; pn = sMeanL2+i; *pn=0; while(w--) if(*ps>0) *pn+=*ps++; - *pn/=trackTable[i]-sequenceLength+1; + *pn/=ntohl(trackTable[i])-sequenceLength+1; SILENCE_THRESH+=*pn; processedTracks++; } - ps = sNorm + trackTable[i]; + ps = sNorm + ntohl(trackTable[i]); } if(verbosity>1) { cerr << "processedTracks: " << processedTracks << endl; @@ -2102,7 +2098,7 @@ assert(meanDBdur); for(k=0; knumFiles); k++){ meanDBdur[k]=0.0; - for(j=0; jnumFiles);k++){ trackOffsetTable[k]=cumTrack; - cumTrack+=trackTable[k]*ntohl(dbH->dim); + cumTrack+=ntohl(trackTable[k])*ntohl(dbH->dim); } char nextKey [MAXSTR]; @@ -2170,28 +2166,28 @@ trackOffset=trackOffsetTable[track]; // numDoubles offset trackIndexOffset=trackOffset/ntohl(dbH->dim); // numVectors offset - if(sequenceLength<=trackTable[track]){ // test for short sequences + if(sequenceLength<=ntohl(trackTable[track])){ // test for short sequences if(verbosity>7) { - cerr << track << "." << trackIndexOffset << "." << trackTable[track] << " | ";cerr.flush(); + cerr << track << "." << trackIndexOffset << "." << ntohl(trackTable[track]) << " | ";cerr.flush(); } // Sum products matrix for(j=0; jdim); sp=dataBuf+trackOffset+k*ntohl(dbH->dim); DD[j][k]=0.0; // Initialize matched filter array @@ -2210,7 +2206,7 @@ for(j=0; j10) { cerr << thisDist << " " << qNorm[j] << " " << sNorm[trackIndexOffset+k] << endl;