projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use implicit_depends for generating the wrapper, which is only a 2.6 feature so bumpi...
[supertux.git]
/
src
/
physfs
/
physfs_sdl.cpp
diff --git
a/src/physfs/physfs_sdl.cpp
b/src/physfs/physfs_sdl.cpp
index
2a22af6
..
9fa1ccd
100644
(file)
--- a/
src/physfs/physfs_sdl.cpp
+++ b/
src/physfs/physfs_sdl.cpp
@@
-68,7
+68,7
@@
static int funcRead(struct SDL_RWops* context, void* ptr, int size, int maxnum)
static int funcClose(struct SDL_RWops* context)
{
PHYSFS_file* file = (PHYSFS_file*) context->hidden.unknown.data1;
static int funcClose(struct SDL_RWops* context)
{
PHYSFS_file* file = (PHYSFS_file*) context->hidden.unknown.data1;
-
+
PHYSFS_close(file);
delete context;
PHYSFS_close(file);
delete context;
@@
-77,6
+77,12
@@
static int funcClose(struct SDL_RWops* context)
SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
{
SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
{
+ // check this as PHYSFS seems to be buggy and still returns a
+ // valid pointer in this case
+ if(filename == "") {
+ throw std::runtime_error("Couldn't open file: empty filename");
+ }
+
PHYSFS_file* file = (PHYSFS_file*) PHYSFS_openRead(filename.c_str());
if(!file) {
std::stringstream msg;
PHYSFS_file* file = (PHYSFS_file*) PHYSFS_openRead(filename.c_str());
if(!file) {
std::stringstream msg;
@@
-84,7
+90,7
@@
SDL_RWops* get_physfs_SDLRWops(const std::string& filename)
<< PHYSFS_getLastError();
throw std::runtime_error(msg.str());
}
<< PHYSFS_getLastError();
throw std::runtime_error(msg.str());
}
-
+
SDL_RWops* ops = new SDL_RWops();
ops->type = 0;
ops->hidden.unknown.data1 = file;
SDL_RWops* ops = new SDL_RWops();
ops->type = 0;
ops->hidden.unknown.data1 = file;