<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>A crash..</title>
		<link>http://www.allegro.cc/forums/view/591080</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 19 Apr 2007 20:54:39 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My problem is that this code crashes. It was originally using _putpixel32, that&#39;s why it called fastfloodfill32. I know that it&#39;s slow, but my idea was to make it myself, with a putpixel. So I changed it to putpixel, and now I&#39;m totally confused.<br />As I know putpixel, can&#39;t crash a program, while it&#39;s bitmap does exist.</p><p>Also, commenting ANY one of the two summons each fastfloodfill_32_**direction** summons, solves the crash problem (Than the function doesn&#39;t do what is required of it though).</p><p>I spent hourse on commenting different parts, looking threw the code and I can&#39;t understand what is the problem. It seems like the problem, is in the closed circle. (summon 1 by 1 east,north,west, south,east..) It should freeze than though, not crash. (I noticed that before, while was trying to do the same with 8 directions, untill understood that 8 aren&#39;t nessasary, and even worse).</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><span class="p">#include "Graphics.h"</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">//fastfloodfill568_32</span></td></tr><tr><td class="number">5</td><td><span class="k1">void</span> fastfloodfill568_32_north<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k1">void</span> fastfloodfill568_32_west<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td><span class="k1">void</span> fastfloodfill568_32_south<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="k1">void</span> fastfloodfill568_32_east<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">int</span> c_fff568,p_fff568<span class="k2">;</span>  <span class="c">//BITMAP* ....</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td><span class="k1">void</span> fastfloodfill568_32_east<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">13</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>  <a href="http://www.allegro.cc/manual/_putpixel" target="_blank"><span class="a">_putpixel</span></a><span class="k2">(</span>dest,x,y,c_fff568<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>  <span class="k1">if</span><span class="k2">(</span>dest-&gt;w&gt;x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">17</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x<span class="k3">+</span><span class="n">1</span>,y<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">18</td><td>      fastfloodfill568_32_east<span class="k2">(</span>dest,x<span class="k3">+</span><span class="n">1</span>,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="n">0</span><span class="k3">&lt;</span>y-1<span class="k2">)</span></td></tr><tr><td class="number">20</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x,y-1<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">21</td><td>      fastfloodfill568_32_north<span class="k2">(</span>dest,x,y-1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td><span class="k1">void</span> fastfloodfill568_32_north<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">25</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">26</td><td>  <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>dest,x,y,c_fff568<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>  </td></tr><tr><td class="number">28</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="n">0</span><span class="k3">&lt;</span>y-1<span class="k2">)</span></td></tr><tr><td class="number">29</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x,y-1<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">30</td><td>      fastfloodfill568_32_north<span class="k2">(</span>dest,x,y-1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="n">0</span><span class="k3">&lt;</span>x-1<span class="k2">)</span></td></tr><tr><td class="number">32</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x-1,y<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">33</td><td>      fastfloodfill568_32_west<span class="k2">(</span>dest,x-1,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">35</td><td>&#160;</td></tr><tr><td class="number">36</td><td><span class="k1">void</span> fastfloodfill568_32_west<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">37</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">38</td><td>  <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>dest,x,y,c_fff568<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>&#160;</td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="n">0</span><span class="k3">&lt;</span>x-1<span class="k2">)</span></td></tr><tr><td class="number">42</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x-1,y<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">43</td><td>      fastfloodfill568_32_west<span class="k2">(</span>dest,x-1,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>  <span class="k1">if</span><span class="k2">(</span>dest-&gt;h&gt;y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">45</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x,y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">46</td><td>      fastfloodfill568_32_south<span class="k2">(</span>dest,x,y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">48</td><td>&#160;</td></tr><tr><td class="number">49</td><td><span class="k1">void</span> fastfloodfill568_32_south<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y<span class="k2">)</span></td></tr><tr><td class="number">50</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">51</td><td>  <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>dest,x,y,c_fff568<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>&#160;</td></tr><tr><td class="number">53</td><td>  <span class="k1">if</span><span class="k2">(</span>dest-&gt;h&gt;y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">54</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x,y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">55</td><td>      fastfloodfill568_32_south<span class="k2">(</span>dest,x,y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>  <span class="k1">if</span><span class="k2">(</span>dest-&gt;w&gt;x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">57</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x<span class="k3">+</span><span class="n">1</span>,y<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">58</td><td>      fastfloodfill568_32_east<span class="k2">(</span>dest,x<span class="k3">+</span><span class="n">1</span>,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">60</td><td>&#160;</td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td><span class="k1">void</span> fastfloodfill568_32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y,<span class="k1">int</span> clr<span class="k2">)</span></td></tr><tr><td class="number">63</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">64</td><td>  c_fff568<span class="k3">=</span>clr<span class="k2">;</span></td></tr><tr><td class="number">65</td><td>  </td></tr><tr><td class="number">66</td><td>  <span class="k1">if</span><span class="k2">(</span>x&gt;0 <span class="k3">&amp;</span><span class="k3">&amp;</span> y&gt;0 <span class="k3">&amp;</span><span class="k3">&amp;</span> x<span class="k3">&lt;</span>dest-&gt;w <span class="k3">&amp;</span><span class="k3">&amp;</span> y<span class="k3">&lt;</span>dest-&gt;h<span class="k2">)</span></td></tr><tr><td class="number">67</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">68</td><td>    p_fff568<span class="k3">=</span><a href="http://www.allegro.cc/manual/getpixel" target="_blank"><span class="a">getpixel</span></a><span class="k2">(</span>dest,x,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>    <span class="k1">if</span><span class="k2">(</span>p_fff568 <span class="k3">=</span><span class="k3">=</span> c_fff568<span class="k2">)</span></td></tr><tr><td class="number">70</td><td>      <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>    <a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>dest,x,y,c_fff568<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">73</td><td>  <span class="k1">else</span></td></tr><tr><td class="number">74</td><td>    <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>&#160;</td></tr><tr><td class="number">76</td><td>  <a href="http://www.allegro.cc/manual/acquire_bitmap" target="_blank"><span class="a">acquire_bitmap</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>  <span class="k1">if</span><span class="k2">(</span>dest-&gt;w&gt;x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">78</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x<span class="k3">+</span><span class="n">1</span>,y<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">79</td><td>      fastfloodfill568_32_east<span class="k2">(</span>dest,x<span class="k3">+</span><span class="n">1</span>,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>&#160;</td></tr><tr><td class="number">81</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="n">0</span><span class="k3">&lt;</span>y-1<span class="k2">)</span></td></tr><tr><td class="number">82</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x,y-1<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">83</td><td>      fastfloodfill568_32_north<span class="k2">(</span>dest,x,y-1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>&#160;</td></tr><tr><td class="number">85</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="n">0</span><span class="k3">&lt;</span>x-1<span class="k2">)</span></td></tr><tr><td class="number">86</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x-1,y<span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">87</td><td>      fastfloodfill568_32_west<span class="k2">(</span>dest,x-1,y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">88</td><td>&#160;</td></tr><tr><td class="number">89</td><td>&#160;</td></tr><tr><td class="number">90</td><td>  <span class="k1">if</span><span class="k2">(</span>dest-&gt;h&gt;y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span></td></tr><tr><td class="number">91</td><td>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/_getpixel32" target="_blank"><span class="a">_getpixel32</span></a><span class="k2">(</span>dest,x,y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k3">=</span><span class="k3">=</span>p_fff568<span class="k2">)</span></td></tr><tr><td class="number">92</td><td>      fastfloodfill568_32_south<span class="k2">(</span>dest,x,y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">93</td><td>&#160;</td></tr><tr><td class="number">94</td><td>  <a href="http://www.allegro.cc/manual/release_bitmap" target="_blank"><span class="a">release_bitmap</span></a><span class="k2">(</span>dest<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td>  <span class="k2">}</span></td></tr></tbody></table></div></div><p>

This code crashes in different programs, while allgro floodfill works.<br />Another problem though, is the floodfill&#39;s leaks, allegro&#39;s floodfill leaks from my 4 cornered forms. (They are drawn with a loop, using only four dots, in some cases leaks).</p><p>Edit: </p><p>Graphics.h:
</p><div class="source-code snippet"><div class="inner"><pre>
<span class="p">#define USE_CONSOLE</span>
<span class="p">#include &lt;allegro.h&gt;</span>

<span class="k1">void</span> fastfloodfill568_32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> dest,<span class="k1">int</span> x,<span class="k1">int</span> y,<span class="k1">int</span> color<span class="k2">)</span><span class="k2">;</span> 
<span class="k1">void</span> fastline568_32<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buff,<span class="k1">int</span> x,<span class="k1">int</span> y,<span class="k1">int</span> x1,<span class="k1">int</span> y1,<span class="k1">int</span> color<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Thu, 19 Apr 2007 20:35:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
This code crashes in different programs, while allgro floodfill works.<br />Another problem though, is the floodfill&#39;s leaks, allegro&#39;s floodfill leaks from my 4 cornered forms. (They are drawn with a loop, using only four dots, in some cases leaks).
</p></div></div><p>
Use floodfill.  It&#39;ll work better.  Just make sure you fill an enclosed space.</p><p>Two, using _getpixel32 will crash if it gets a pixel outside of the bitmap and you&#39;ll need to be in 32 bit color mode.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Thu, 19 Apr 2007 20:45:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>getpixel() still crashes. Actually I have this code working with polygon, and I want to compare performance with _putpixel. Also I have it working with pure lines(without fill..).</p><p>By the way, the program is a 3d cube, twisting.. And i want to do it with putpixel :].
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Thu, 19 Apr 2007 20:54:39 +0000</pubDate>
	</item>
</rss>
