Mercurial > audlegacy-plugins
diff src/modplug/archive/arch_raw.cxx @ 234:88465b96e4b3 trunk
[svn] - VFS support
author | nenolod |
---|---|
date | Tue, 07 Nov 2006 01:55:13 -0800 |
parents | 3da1b8942b8b |
children | 964ad0acc33f |
line wrap: on
line diff
--- a/src/modplug/archive/arch_raw.cxx Tue Nov 07 00:35:18 2006 -0800 +++ b/src/modplug/archive/arch_raw.cxx Tue Nov 07 01:55:13 2006 -0800 @@ -16,36 +16,26 @@ arch_Raw::arch_Raw(const string& aFileName) { - mFileDesc = open(aFileName.c_str(), O_RDONLY); - - struct stat lStat; + mFileDesc = vfs_fopen(aFileName.c_str(), "rb"); //open and mmap the file - if(mFileDesc == -1) + if(mFileDesc == NULL) { mSize = 0; return; } - fstat(mFileDesc, &lStat); - mSize = lStat.st_size; + mSize = vfs_ftell(mFileDesc); - mMap = - (uchar*)mmap(0, mSize, PROT_READ, - MAP_PRIVATE, mFileDesc, 0); - if(!mMap) - { - close(mFileDesc); - mSize = 0; - return; - } + mMap = malloc(mSize); + vfs_fread(mMap, 0, mSize, mFileDesc); } arch_Raw::~arch_Raw() { if(mSize != 0) { - munmap(mMap, mSize); - close(mFileDesc); + free(mMap); + vfs_fclose(mFileDesc); } }