Commits

Lenard Lindstrom committed 38cdc3d

Bug fix: Issue 2 - Surface.subsurface segfault

Comments (0)

Files changed (2)

 surf_subsurface (PyObject *self, PyObject *args)
 {
     SDL_Surface *surf = PySurface_AsSurface (self);
-    SDL_PixelFormat *format = surf->format;
+    SDL_PixelFormat *format;
     GAME_Rect *rect, temp;
     SDL_Surface *sub;
     PyObject *subobj;
     if (surf->flags & SDL_OPENGL)
         return RAISE (PyExc_SDLError, "Cannot call on OPENGL Surfaces");
 
+    format = surf->format;
     if (!(rect = GameRect_FromObject (args, &temp)))
         return RAISE (PyExc_ValueError, "invalid rectstyle argument");
     if (rect->x < 0 || rect->y < 0 || rect->x + rect->w > surf->w

test/surface_test.py

         self.assertEquals(s.get_masks(), surf.get_masks())
         self.assertEquals(s.get_losses(), surf.get_losses())
 
-
+        # Issue 2 at Bitbucket.org/pygame/pygame
+        surf = pygame.Surface.__new__(pygame.Surface)
+        self.assertRaises(pygame.error, surf.subsurface, (0, 0, 0, 0))
 
 
 
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 ProjectModifiedEvent.java.
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.