Anonymous committed 8db7480

Fix GC error in SDL.mixer.Mix_ChannelFinished

Comments (0)

Files changed (2)

  - pygame.Surface.set_clip with negative-sized rects.
  - pygame.Surface.set_at and .get_at for 24-bit surfaces.  Largely untested.
+SDL-ctypes 0.10
+ - Mix_ChannelFinished fixed GC error.
 Pygame-ctypes 0.09
  - pygame.mixer.Channel.get/set_endevent fixed
+# Keep the ctypes ref around
+_hookmusicfinished_ref = None
 def Mix_HookMusicFinished(music_finished):
     '''Add your own callback when the music has finished playing.
             The callback takes no arguments and returns no value.
+    global _hookmusicfinished_ref
     if music_finished:
-        _Mix_HookMusicFinished(_Mix_HookMusicFinishedFunc(music_finished))
+        _hookmusicfinished_ref = _Mix_HookMusicFinishedFunc(music_finished)
+        _Mix_HookMusicFinished(_hookmusicfinished_ref)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.