GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Description: a tiny graphical app kit for ruby
Homepage: http://code.whytheluckystiff.net/shoes
Clone URL: git://github.com/why/shoes.git
 * shoes/native/gtk.c: slight memory leak when creating regions in the gtk 
 code.
 * shoes/canvas.c: free the cairo context even if an error occurs.
 * Rakefile: turn off optimizations for DEBUG build.
why (author)
Sat Oct 04 22:24:05 -0700 2008
commit  48432feca63f305f32cd26f4e2710ab6023effc0
tree    66fc8583f96a8e30d47a4aaa85441d5aaa7e8891
parent  376dd5ccf8c1672a7a1aeb40d83a6397a82e3a1c
...
318
319
320
321
 
 
 
322
323
324
...
330
331
332
333
 
334
335
336
337
 
338
339
340
...
380
381
382
383
 
384
385
386
387
 
388
389
390
...
318
319
320
 
321
322
323
324
325
326
...
332
333
334
 
335
336
337
338
 
339
340
341
342
...
382
383
384
 
385
386
387
388
 
389
390
391
392
0
@@ -318,7 +318,9 @@ else
0
     LINUX_CFLAGS << " -D#{flag}" if ENV[flag]
0
   end
0
   if ENV['DEBUG']
0
- LINUX_CFLAGS << " -g"
0
+ LINUX_CFLAGS << " -g -O0 "
0
+ else
0
+ LINUX_CFLAGS << " -O "
0
   end
0
 
0
   case PLATFORM when /darwin/
0
@@ -330,11 +332,11 @@ else
0
       LINUX_LDFLAGS << " ./deps/lib/libvlc.a ./deps/lib/vlc/libmemcpymmx.a ./deps/lib/vlc/libi420_rgb_mmx.a ./deps/lib/vlc/libi422_yuy2_mmx.a ./deps/lib/vlc/libi420_ymga_mmx.a ./deps/lib/vlc/libi420_yuy2_mmx.a ./deps/lib/vlc/libmemcpymmxext.a ./deps/lib/vlc/libmemcpy3dn.a ./deps/lib/vlc/libffmpeg.a ./deps/lib/vlc/libstream_out_switcher.a ./deps/lib/vlc/libquicktime.a ./deps/lib/vlc/libxvideo.a ./deps/lib/vlc/libauhal.a ./deps/lib/vlc/libmacosx.a -framework vecLib -lpthread -lm -liconv -lintl -liconv -lc -lpostproc -lavformat -lavcodec -lz -la52 -lfaac -lfaad -lmp3lame -lx264 -lxvidcore -lvorbisenc -lavutil -lvorbis -lm -logg -lm -lavformat -lavcodec -lz -la52 -lfaac -lfaad -lmp3lame -lx264 -lxvidcore -lvorbisenc -lavutil -lvorbis -lm -logg -framework QuickTime -lm -lXxf86vm -lXinerama -L/usr/X11R6/lib -lSM -lICE -lX11 -lXext -lXv -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework IOKit -lobjc -ObjC -framework OpenGL -framework AGL -read_only_relocs suppress"
0
     end
0
     if ENV['UNIVERSAL']
0
- LINUX_CFLAGS << " -O -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
0
+ LINUX_CFLAGS << " -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
0
       LINUX_LDFLAGS << " -arch i386 -arch ppc"
0
       ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.4'
0
     elsif ENV['PPC']
0
- LINUX_CFLAGS << " -O -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc"
0
+ LINUX_CFLAGS << " -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc"
0
       LINUX_LDFLAGS << " -arch ppc"
0
       ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.4'
0
     end
0
@@ -380,11 +382,11 @@ else
0
   end
0
 
0
   rule ".o" => ".m" do |t|
0
- sh "#{CC} -I. -O -c -o#{t.name} #{LINUX_CFLAGS} #{t.source}"
0
+ sh "#{CC} -I. -c -o#{t.name} #{LINUX_CFLAGS} #{t.source}"
0
   end
0
 
0
   rule ".o" => ".c" do |t|
0
- sh "#{CC} -I. -O -c -o#{t.name} #{LINUX_CFLAGS} #{t.source}"
0
+ sh "#{CC} -I. -c -o#{t.name} #{LINUX_CFLAGS} #{t.source}"
0
   end
0
 
0
   case PLATFORM when /darwin/
...
209
210
211
212
 
213
214
215
216
217
218
 
219
220
221
...
209
210
211
 
212
213
214
215
216
217
218
219
220
221
222
0
@@ -209,13 +209,14 @@ shoes_canvas_paint_call(VALUE self)
0
   }
0
 
0
   cairo_destroy(cr);
0
- canvas->cr = NULL;
0
+ cr = canvas->cr = NULL;
0
 
0
   shoes_cairo_destroy(canvas);
0
   shoes_get_time(&mid);
0
   INFO("PAINT: %0.6f s\n", ELAPSED);
0
   shoes_canvas_send_start(self);
0
 quit:
0
+ if (cr != NULL) cairo_destroy(cr);
0
   return self;
0
 }
0
 
...
600
601
602
 
603
604
605
...
600
601
602
603
604
605
606
0
@@ -600,6 +600,7 @@ shoes_cairo_create(shoes_canvas *canvas)
0
     GdkRegion *region = gdk_region_rectangle(&canvas->slot->canvas->allocation);
0
     gdk_region_intersect(region, canvas->slot->expose->region);
0
     gdk_cairo_region(cr, region);
0
+ gdk_region_destroy(region);
0
     cairo_clip(cr);
0
     cairo_translate(cr, canvas->slot->canvas->allocation.x, canvas->slot->canvas->allocation.y - canvas->slot->scrolly);
0
   }

Comments

    No one has commented yet.