update
[sdlgit/SDL-Site.git] / pages / blog-0020.html-inc
index ce0a8db..e65be37 100644 (file)
@@ -1,6 +1,36 @@
 <div class="blog">
 <h1 id="NAME">
-Catching memory leaks in XS
+Hello Mouse? An Example of the New Event Code
 </h1>
 <div class="CONTENT">
-<div style="text-align: right;"><i>&nbsp;I slay dragons, yonder</i></div><br />So I am trying to find and plug memory leaks in SDL perl. Most of the <a href="https://rt.cpan.org/Ticket/Display.html?id=49084">memory leaks</a> occur because in XS a reference is still held. One very expensive mem leak was caught by TELS really early on <a href="https://rt.cpan.org/Ticket/Display.html?id=17976">here</a>. The problem occurs where in XS there is<br /><br /><blockquote><i>RETVAL</i><i> = (cast *) safemalloc( ... );</i></blockquote>&nbsp;and safefree(...) is never called.<br />Here is a in <a href="http://github.com/kthakore/SDL_perl/blob/63ebaa682697728f5946f700a2b2c12534b1b821/src/SDL.xs">code example</a> lines 1082 on. <br /><br />My question is how I can mitigate these memory leaks? One idea I had was to store all malloc'd pointers to an array that is safefree'd on DESTROY or hooked into perl GC somehow .<br /><br /><br />Any guidance is helpful.<br /><br /><i>--yapgh</i><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-7742659740534179607?l=yapgh.blogspot.com'/></div></div>
\ No newline at end of file
+<div style="text-align: right;"><i>Any code that is not marketed is dead code <br />
+--mst</i><br />
+</div><br />
+You need the new code from the <b> <a href="http://http://github.com/kthakore/SDL_Perl/tree/redesign">redesign branch</a></b> to use this . <br />
+<br />
+<pre class="fake-gist" id="fake-gist-231987">#!/usr/bin/env perl
+
+use SDL;
+use SDL::Events;
+use SDL::Event;
+use SDL::Video; 
+
+SDL::init(SDL_INIT_VIDEO);
+
+my $display = SDL::Video::set_video_mode(640,480,32, SDL_SWSURFACE );
+my $event   = SDL::Event-&gt;new(); 
+
+while(1)
+{   
+ SDL::Events::pump_events();  
+
+ if(SDL::Events::poll_event($event) &amp;&amp; $event-&gt;type == SDL_ACTIVEEVENT)
+ {
+  print "Hello Mouse!!!\n" if ($event-&gt;active_gain  &amp;&amp; ($event-&gt;active_state == SDL_APPMOUSEFOCUS) );
+  print "Bye Mouse!!!\n"   if (!$event-&gt;active_gain &amp;&amp; ($event-&gt;active_state == SDL_APPMOUSEFOCUS) );
+ }   
+ exit if($event-&gt;type == SDL_QUIT);
+}</pre><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-4268622242266513664?l=yapgh.blogspot.com' alt='' /></div>
+<p><a href="http://feedads.g.doubleclick.net/~a/VcCMh0XKi92JWmYoQnOB3cQLHtY/0/da"><img src="http://feedads.g.doubleclick.net/~a/VcCMh0XKi92JWmYoQnOB3cQLHtY/0/di" border="0" ismap="true"></img></a><br/>
+<a href="http://feedads.g.doubleclick.net/~a/VcCMh0XKi92JWmYoQnOB3cQLHtY/1/da"><img src="http://feedads.g.doubleclick.net/~a/VcCMh0XKi92JWmYoQnOB3cQLHtY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/xhzWiodiKJI" height="1" width="1"/></div></div>
\ No newline at end of file