Commits

Lenard Lindstrom committed 38cdc3d

Bug fix: Issue 2 - Surface.subsurface segfault

  • Participants
  • Parent commits 011e259

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))