fifengine / fifengine

FIFE is a multi-platform isometric game engine
http://www.fifengine.net
GNU Lesser General Public License v2.1
552 stars 77 forks source link

swig/python detected a memory leak of type 'FIFE::MouseEvent *', no destructor found. #699

Closed stubb closed 11 years ago

stubb commented 12 years ago

With FIFE's trunk and Unknown Horizons master branch I got this memory leak information. The mouse is stuck and not usable, I have the same problem for the demo rio de hola.

swig/python detected a memory leak of type 'FIFE::MouseEvent *', no destructor found.

I compiled successfully with scons ext && scons after cleaned up the old build files with scons -c and rm -rf .sconsign.dblite build/.sconf_temp .

Thats the build log:

file /home/kili/Repositories/FIFE/trunk/SConstruct,line 220:
    Configure(confdir = build/.sconf_temp)
scons: Configure: Checking for vorbisfile (using pkg-config)...
pkg-config --libs --cflags 'vorbisfile'
 -lvorbisfile -lvorbis -lm -logg  
scons: Configure: yes

scons: Configure: Checking for python2.7 (using pkg-config)...
pkg-config --libs --cflags 'python2.7'
Package python2.7 was not found in the pkg-config search path.
Perhaps you should add the directory containing `python2.7.pc'
to the PKG_CONFIG_PATH environment variable
No package 'python2.7' found
scons: Configure: no

scons: Configure: Checking for python2.7 (using python2.7-config)... 
python2.7-config --libs --cflags
-lpthread -ldl -lutil -lm -lpython2.7
-I/usr/include/python2.7 -I/usr/include/python2.7 -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DNDEBUG -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2
scons: Configure: yes

scons: Configure: Checking for openal (using pkg-config)...
pkg-config --libs --cflags 'openal'
 -lopenal  
scons: Configure: yes

scons: Configure: Checking for SDL (using pkg-config)...
pkg-config --libs --cflags 'sdl'
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL  -lSDL -lpthread  
scons: Configure: yes

scons: Configure: Checking for SDL_ttf (using pkg-config)...
pkg-config --libs --cflags 'sdl_ttf'
Package sdl_ttf was not found in the pkg-config search path.
Perhaps you should add the directory containing `sdl_ttf.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sdl_ttf' found
scons: Configure: no

scons: Configure: Checking for SDL_ttf (using sdl_ttf-config)... 
sdl_ttf-config --libs --cflags
sh: sdl_ttf-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library SDL_ttf... 
build/.sconf_temp/conftest_7.cpp <-
  |
  |
  |#include "SDL_ttf.h"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_7.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_7.cpp
g++ -o build/.sconf_temp/conftest_7 build/.sconf_temp/conftest_7.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf
scons: Configure: yes

scons: Configure: Checking for SDL_image (using pkg-config)...
pkg-config --libs --cflags 'sdl_image'
Package sdl_image was not found in the pkg-config search path.
Perhaps you should add the directory containing `sdl_image.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sdl_image' found
scons: Configure: no

scons: Configure: Checking for SDL_image (using sdl_image-config)... 
sdl_image-config --libs --cflags
sh: sdl_image-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library SDL_image... 
build/.sconf_temp/conftest_10.cpp <-
  |
  |
  |#include "SDL_image.h"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_10.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_10.cpp
g++ -o build/.sconf_temp/conftest_10 build/.sconf_temp/conftest_10.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image
scons: Configure: yes

scons: Configure: Checking for guichan (using pkg-config)...
pkg-config --libs --cflags 'guichan'
Package guichan was not found in the pkg-config search path.
Perhaps you should add the directory containing `guichan.pc'
to the PKG_CONFIG_PATH environment variable
No package 'guichan' found
scons: Configure: no

scons: Configure: Checking for guichan (using guichan-config)... 
guichan-config --libs --cflags
sh: guichan-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library guichan... 
build/.sconf_temp/conftest_13.cpp <-
  |
  |
  |#include "guichan.hpp"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_13.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_13.cpp
g++ -o build/.sconf_temp/conftest_13 build/.sconf_temp/conftest_13.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan
scons: Configure: yes

scons: Configure: Checking for guichan_sdl (using pkg-config)...
pkg-config --libs --cflags 'guichan_sdl'
Package guichan_sdl was not found in the pkg-config search path.
Perhaps you should add the directory containing `guichan_sdl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'guichan_sdl' found
scons: Configure: no

scons: Configure: Checking for guichan_sdl (using guichan_sdl-config)... 
guichan_sdl-config --libs --cflags
sh: guichan_sdl-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library guichan_sdl... 
build/.sconf_temp/conftest_16.cpp <-
  |
  |
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_16.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_16.cpp
g++ -o build/.sconf_temp/conftest_16 build/.sconf_temp/conftest_16.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan -lguichan_sdl
scons: Configure: yes

scons: Configure: Checking for boost_system (using pkg-config)...
pkg-config --libs --cflags 'boost_system'
Package boost_system was not found in the pkg-config search path.
Perhaps you should add the directory containing `boost_system.pc'
to the PKG_CONFIG_PATH environment variable
No package 'boost_system' found
scons: Configure: no

scons: Configure: Checking for boost_system (using boost_system-config)... 
boost_system-config --libs --cflags
sh: boost_system-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library boost_system... 
build/.sconf_temp/conftest_19.cpp <-
  |
  |
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_19.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_19.cpp
g++ -o build/.sconf_temp/conftest_19 build/.sconf_temp/conftest_19.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan -lguichan_sdl -lboost_system
scons: Configure: yes

scons: Configure: Checking for boost_filesystem (using pkg-config)...
pkg-config --libs --cflags 'boost_filesystem'
Package boost_filesystem was not found in the pkg-config search path.
Perhaps you should add the directory containing `boost_filesystem.pc'
to the PKG_CONFIG_PATH environment variable
No package 'boost_filesystem' found
scons: Configure: no

scons: Configure: Checking for boost_filesystem (using boost_filesystem-config)... 
boost_filesystem-config --libs --cflags
sh: boost_filesystem-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library boost_filesystem... 
build/.sconf_temp/conftest_22.cpp <-
  |
  |
  |#include "boost/filesystem.hpp"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_22.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_22.cpp
g++ -o build/.sconf_temp/conftest_22 build/.sconf_temp/conftest_22.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan -lguichan_sdl -lboost_system -lboost_filesystem
scons: Configure: yes

scons: Configure: Checking for boost_regex (using pkg-config)...
pkg-config --libs --cflags 'boost_regex'
Package boost_regex was not found in the pkg-config search path.
Perhaps you should add the directory containing `boost_regex.pc'
to the PKG_CONFIG_PATH environment variable
No package 'boost_regex' found
scons: Configure: no

scons: Configure: Checking for boost_regex (using boost_regex-config)... 
boost_regex-config --libs --cflags
sh: boost_regex-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library boost_regex... 
build/.sconf_temp/conftest_25.cpp <-
  |
  |
  |#include "boost/regex.hpp"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_25.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_25.cpp
g++ -o build/.sconf_temp/conftest_25 build/.sconf_temp/conftest_25.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan -lguichan_sdl -lboost_system -lboost_filesystem -lboost_regex
scons: Configure: yes

scons: Configure: Checking for png (using pkg-config)...
pkg-config --libs --cflags 'png'
Package png was not found in the pkg-config search path.
Perhaps you should add the directory containing `png.pc'
to the PKG_CONFIG_PATH environment variable
No package 'png' found
scons: Configure: no

scons: Configure: Checking for png (using png-config)... 
png-config --libs --cflags
sh: png-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library png... 
build/.sconf_temp/conftest_28.cpp <-
  |
  |
  |#include "png.h"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_28.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_28.cpp
g++ -o build/.sconf_temp/conftest_28 build/.sconf_temp/conftest_28.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan -lguichan_sdl -lboost_system -lboost_filesystem -lboost_regex -lpng
scons: Configure: yes

scons: Configure: Checking for Xcursor (using pkg-config)...
pkg-config --libs --cflags 'xcursor'
 -lXcursor  
scons: Configure: yes

scons: Configure: Checking for guichan_opengl (using pkg-config)...
pkg-config --libs --cflags 'guichan_opengl'
Package guichan_opengl was not found in the pkg-config search path.
Perhaps you should add the directory containing `guichan_opengl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'guichan_opengl' found
scons: Configure: no

scons: Configure: Checking for guichan_opengl (using guichan_opengl-config)... 
guichan_opengl-config --libs --cflags
sh: guichan_opengl-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library guichan_opengl... 
build/.sconf_temp/conftest_32.cpp <-
  |
  |
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_32.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_32.cpp
g++ -o build/.sconf_temp/conftest_32 build/.sconf_temp/conftest_32.o -L/opt/lib -Lext/install/lib -L/usr/local/lib -L/usr/X11R6/lib -lstdc++ -lGL -lvorbisfile -lvorbis -logg -ldl -lutil -lm -lpython2.7 -lopenal -lSDL -lpthread -lSDL_ttf -lSDL_image -lguichan -lguichan_sdl -lboost_system -lboost_filesystem -lboost_regex -lpng -lXcursor -lguichan_opengl
scons: Configure: yes

scons: Configure: Checking for tinyxml (using pkg-config)...
pkg-config --libs --cflags 'tinyxml'
Package tinyxml was not found in the pkg-config search path.
Perhaps you should add the directory containing `tinyxml.pc'
to the PKG_CONFIG_PATH environment variable
No package 'tinyxml' found
scons: Configure: no

scons: Configure: Checking for tinyxml (using tinyxml-config)... 
tinyxml-config --libs --cflags
sh: tinyxml-config: Kommando nicht gefunden.
scons: Configure: no

scons: Configure: Checking for C++ library tinyxml... 
build/.sconf_temp/conftest_35.cpp <-
  |
  |
  |#include "tinyxml.h"
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
g++ -o build/.sconf_temp/conftest_35.o -c -DPNG_SKIP_SETJMP_CHECK -fno-strict-aliasing -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DTIXML_USE_STL -DNDEBUG -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE=1 -D_REENTRANT -I/opt/include -I/usr/include/vorbis -I/usr/include/SDL -I/usr/include/python2.7 -Iext/install/include build/.sconf_temp/conftest_35.cpp
build/.sconf_temp/conftest_35.cpp:3:21: schwerwiegender Fehler: tinyxml.h: Datei oder Verzeichnis nicht gefunden
Kompilierung beendet.
scons: Configure: no

The MouseEvent class in engine/python/fife

class MouseEvent(InputEvent):
    """Proxy of C++ FIFE::MouseEvent class"""
    __swig_setmethods__ = {}
    for _s in [InputEvent]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, MouseEvent, name, value)
    __swig_getmethods__ = {}
    for _s in [InputEvent]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, MouseEvent, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    UNKNOWN_EVENT = _fife.MouseEvent_UNKNOWN_EVENT
    MOVED = _fife.MouseEvent_MOVED
    PRESSED = _fife.MouseEvent_PRESSED
    RELEASED = _fife.MouseEvent_RELEASED
    WHEEL_MOVED_DOWN = _fife.MouseEvent_WHEEL_MOVED_DOWN
    WHEEL_MOVED_UP = _fife.MouseEvent_WHEEL_MOVED_UP
    CLICKED = _fife.MouseEvent_CLICKED
    ENTERED = _fife.MouseEvent_ENTERED
    EXITED = _fife.MouseEvent_EXITED
    DRAGGED = _fife.MouseEvent_DRAGGED
    EMPTY = _fife.MouseEvent_EMPTY
    LEFT = _fife.MouseEvent_LEFT
    RIGHT = _fife.MouseEvent_RIGHT
    MIDDLE = _fife.MouseEvent_MIDDLE
    UNKNOWN_BUTTON = _fife.MouseEvent_UNKNOWN_BUTTON
    def getX(self):
        """getX(MouseEvent self) -> int32_t"""
        return _fife.MouseEvent_getX(self)

    def getY(self):
        """getY(MouseEvent self) -> int32_t"""
        return _fife.MouseEvent_getY(self)

    def getType(self):
        """getType(MouseEvent self) -> FIFE::MouseEvent::MouseEventType"""
        return _fife.MouseEvent_getType(self)

    def getButton(self):
        """getButton(MouseEvent self) -> FIFE::MouseEvent::MouseButtonType"""
        return _fife.MouseEvent_getButton(self)

MouseEvent_swigregister = _fife.MouseEvent_swigregister
MouseEvent_swigregister(MouseEvent)

I attached fife_wrap.cc and and fife_wrap.h to this ticket.

stubb commented 12 years ago

.

stubb commented 12 years ago

the fife_wrap.cc: [https://gist.github.com/2549175]

stubb commented 12 years ago

It's the same problem after i installed tinyxml via the packagemanagement and made a fresh checkout of the fife source.

stubb commented 12 years ago

After downgrading swig (2.0.5-1 => 2.0.4-3) the messages are gone but the problem isn't. The mouse is kind of stuttering extremely (one update in half a minute). But the ingame console tells me the client has ~60 fps.The fps value isn't properly updated too.

stubb commented 12 years ago

Not reproducable on another arch linux system but with an nvidia card instead of an ATI/AMD used by proprietary drivers.

stubb commented 12 years ago

Edit:

swig/python detected a memory leak of type 'FIFE::MouseEvent *',

Happens too, but the mouse works without problems.

stubb commented 12 years ago

The lag/slowdown happens only with the Opengl and OpenGLe renderer.

vtchill commented 12 years ago

The lag/stuttering is sounding more and more like a driver specific problem.

enno4uh commented 12 years ago

this seems to be an ages-old error! could it be that newer versions of swig are just more accurate?

(svn blame yields last changes at the problematic pieces of code are from rev. 2324 = 2008-03-16 and rev. 1339 = 2007-07-08 )

when fixing the 3 destructors in engine/core/eventchannel/eventchannel.i it works like a charm and I don't get any swig problems (reference: http://stackoverflow.com/questions/918180/swig-python-memory-leak-detected) details

messages from running scons

engine/core/eventchannel/eventchannel.i:61: Warning 521: Illegal destructor name FIFE::~IEvent. Ignored.
engine/core/eventchannel/eventchannel.i:73: Warning 521: Illegal destructor name FIFE::~IInputEvent. Ignored.
engine/core/eventchannel/eventchannel.i:156: Warning 521: Illegal destructor name FIFE::~IMouseEvent. Ignored.

-> The destructors are mis-spelled:

 53   class Event {
 54   public:
 55     virtual void consume();
 56     virtual bool isConsumed() const;
 57     virtual IEventSource* getSource();
 58     virtual int32_t getTimeStamp() const;
 59     virtual std::string getDebugString() const;
 60     virtual const std::string& getName() const;
 61     virtual ~IEvent() {}

..
 66   class InputEvent: public Event {
 67   public:
 68     virtual bool isConsumedByWidgets() const;
 69     virtual bool isAltPressed() const;
 70     virtual bool isControlPressed() const;
 71     virtual bool isMetaPressed() const;
 72     virtual bool isShiftPressed() const;
 73     virtual ~IInputEvent() {}
 74   private:
 75     InputEvent();
 76   };

...

130   class MouseEvent: public InputEvent {
131   public:
132     enum MouseEventType {
133       UNKNOWN_EVENT = -1,
134       MOVED = 0,
135       PRESSED,
136       RELEASED,
137       WHEEL_MOVED_DOWN,
138       WHEEL_MOVED_UP,
139       CLICKED,
140       ENTERED,
141       EXITED,
142       DRAGGED
143     };
144 
145     enum MouseButtonType {
146       EMPTY = 0,
147       LEFT = 1,
148       RIGHT = 2,
149       MIDDLE = 4,
150       UNKNOWN_BUTTON = 8
151     };
152     virtual int32_t getX() const;
153     virtual int32_t getY() const;
154     virtual MouseEventType getType() const;
155     virtual MouseButtonType getButton() const;
156     virtual ~IMouseEvent();
prock-fife commented 12 years ago

(In [3949]) Fixed some misspelled dtors in the eventchannel.i swig interface file. Thanks to enno4uh for spotting this. closes #699