Mercurial > hg > audiodb
comparison audioDB.cpp @ 184:1fb3d82aa590 no-big-mmap
no dataBuf use in dump()
author | mas01cr |
---|---|
date | Thu, 15 Nov 2007 17:40:46 +0000 |
parents | 3002bee2f60d |
children | ae212368a874 |
comparison
equal
deleted
inserted
replaced
183:3002bee2f60d | 184:1fb3d82aa590 |
---|---|
937 | 937 |
938 char *fName = new char[256]; | 938 char *fName = new char[256]; |
939 int ffd; | 939 int ffd; |
940 FILE *tFile; | 940 FILE *tFile; |
941 unsigned pos = 0; | 941 unsigned pos = 0; |
942 lseek(dbfid, dbH->dataOffset, SEEK_SET); | |
943 double *data_buffer; | |
944 size_t data_buffer_size; | |
942 for(unsigned k = 0; k < dbH->numFiles; k++) { | 945 for(unsigned k = 0; k < dbH->numFiles; k++) { |
943 fprintf(kLFile, "%s\n", fileTable + k*O2_FILETABLESIZE); | 946 fprintf(kLFile, "%s\n", fileTable + k*O2_FILETABLESIZE); |
944 snprintf(fName, 256, "%05d.features", k); | 947 snprintf(fName, 256, "%05d.features", k); |
945 if ((ffd = open(fName, O_CREAT|O_RDWR|O_EXCL, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) < 0) { | 948 if ((ffd = open(fName, O_CREAT|O_RDWR|O_EXCL, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) < 0) { |
946 error("error creating feature file", fName, "open"); | 949 error("error creating feature file", fName, "open"); |
947 } | 950 } |
948 if ((write(ffd, &dbH->dim, sizeof(uint32_t))) < 0) { | 951 if ((write(ffd, &dbH->dim, sizeof(uint32_t))) < 0) { |
949 error("error writing dimensions", fName, "write"); | 952 error("error writing dimensions", fName, "write"); |
950 } | 953 } |
951 | 954 |
952 if ((write(ffd, dataBuf + pos * dbH->dim, trackTable[k] * dbH->dim * sizeof(double))) < 0) { | 955 /* FIXME: this repeated malloc()/free() of data buffers is |
956 inefficient. */ | |
957 data_buffer_size = trackTable[k] * dbH->dim * sizeof(double); | |
958 | |
959 { | |
960 void *tmp = malloc(data_buffer_size); | |
961 if (tmp == NULL) { | |
962 error("error allocating data buffer"); | |
963 } | |
964 data_buffer = (double *) tmp; | |
965 } | |
966 | |
967 if ((read(dbfid, data_buffer, data_buffer_size)) != (ssize_t) data_buffer_size) { | |
968 error("error reading data", fName, "read"); | |
969 } | |
970 | |
971 if ((write(ffd, data_buffer, data_buffer_size)) < 0) { | |
953 error("error writing data", fName, "write"); | 972 error("error writing data", fName, "write"); |
954 } | 973 } |
974 | |
975 free(data_buffer); | |
976 | |
955 fprintf(fLFile, "%s\n", fName); | 977 fprintf(fLFile, "%s\n", fName); |
956 close(ffd); | 978 close(ffd); |
957 | 979 |
958 if(times) { | 980 if(times) { |
959 snprintf(fName, 256, "%05d.times", k); | 981 snprintf(fName, 256, "%05d.times", k); |