swapFlag = GL_FALSE;
}
- raw = (rawImageRec *)malloc(sizeof(rawImageRec));
+ raw = (rawImageRec *)calloc(1, sizeof(rawImageRec));
if (raw == NULL) {
fprintf(stderr, "Out of memory!\n");
return NULL;
}
- if ((raw->file = fopen(fileName, "rb")) == NULL) {
- perror(fileName);
- return NULL;
+ raw->file = fopen(fileName, "rb");
+ if (raw->file == NULL) {
+ const char *baseName = strrchr(fileName, '/');
+ if(baseName)
+ raw->file = fopen(baseName + 1, "rb");
+ if(raw->file == NULL) {
+ perror(fileName);
+ return NULL;
+ }
}
fread(raw, 1, 12, raw->file);
static void RawImageClose(rawImageRec *raw)
{
-
fclose(raw->file);
free(raw->tmp);
free(raw->tmpR);
free(raw->tmpG);
free(raw->tmpB);
+ if (raw->rowStart)
+ free(raw->rowStart);
+ if (raw->rowSize)
+ free(raw->rowSize);
if (raw->sizeZ>3) {
free(raw->tmpA);
}