<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><div id="yiv882874277yui_3_2_0_20_133804617346548"><span id="yiv882874277yui_3_2_0_20_1338046173465208"></span></div><div>For those of you playing along at home, Dimitar and I had an offline discussion about building Qyoto.  The end result was, he wasn't making a Release build when he thought he was, and although smokegen and smokeqt worked when built as Release, assemblygen didn't.</div><div><br></div><div>Usually, when something works as a debug build, but not as release, the compiler warns about the issues.  I decided to add "-Wall" to my compiler command line, and found two cases where control reached the end of non-void functions.  The
 enclosed patch fixes both issues.</div><div><br></div><div>And now...release builds of Qyoto are working for me, under both Windows and Linux!</div><div><br></div><div>Could someone with write access to smokegen and smokeqt please apply the patches I sent to the list on May 22, at 7:08pm my time?  We finally have a version of the assemblygen-based Qyoto that builds and works under MS Windows and Linux.</div><div><br></div><div>Steven Boswell</div><div><br></div>  <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " id="yiv882874277yui_3_2_0_20_133804617346556" class="yiv882874277yui_3_2_0_20_133804617346554"> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_133804617346561"> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Dimitar Dobrev <dpldobrev@yahoo.com><br> <b><span
 style="font-weight:bold;">To:</span></b> Steven Boswell II <ulatekh@yahoo.com>; KDE bindings <kde-bindings@kde.org> <br> <b><span style="font-weight:bold;">Sent:</span></b> Friday, May 25, 2012 9:48 AM<br> <b><span style="
font-weight:bold;">Subject:</span></b> Re: HccQt: all libs release<br> </font> </div> <br>
<div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_133804617346569"><div><span>Yes, this is exactly what I mean, I'm porting an existing project to Qt.</span></div><div><span>I really do not have the time for comments but I can give you a basic outline for Qyoto (contained in the qtcore Qyoto module) as follows:</span></div><div><span>1. <a rel="nofollow" target="_blank" href="http://SmokeInvocation.cs">SmokeInvocation.cs</a> - contains the methods that invoke the corresponding invokers in the native Qyoto which in turn call the SMOKE methods;</span></div><div><span>2. <a rel="nofollow" target="_blank" href="http://SmokeMarshallers.cs">SmokeMarshallers.cs</a> - these are the managed methods called by native code;<br></span></div><div><span>2. methodcall.cpp, virtualcall.cpp - these are
 self-explanatory;</span></div><div><span>3. handlers.cpp - these are the type marshallers;
 each type you pass to and each type you get from unmanaged code passes its appropriate marshaller; you'll see the </span>Qyoto_handlers field which indicated which
 marshaller (a function pointer) is used for a certain type; for example, marshall_basetype is used for classes;<br></div><div>4. callbacks.cpp - these set pointers pointing to the managed methods (defined in 2.,<span> SmokeMarshallers.cs</span>) to call from unmanaged code.</div><div>This is basically it, and as these are the most used methods, the bug is most likely there. Let me know if you need more assistance.<br></div><div><br></div>  <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_133804617346589"> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_133804617346591"> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Steven Boswell II <ulatekh@yahoo.com><br> <b><span style="font-weight:bold;">To:</span></b> Dimitar Dobrev
 <dpldobrev@yahoo.com> <br> <b><span style="font-weight:bold;">Sent:</span></b> Friday, May 25, 2012 5:11 PM<br> <b><span style="font-weight:bold;">Subject:</span></b> Re: HccQt: all libs release<br> </font> </div> <br>
<div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_133804617346599"><div><span>Porting what?  Are you talking about porting an existing project to use Qyoto and Qt?</span></div><div><br><span></span></div><div><span>I'll have to learn the source code to Qyoto to have any luck debugging it.  I don't suppose you'll have time to add source-code comments to Qyoto to reflect what you've learned about it in the last several months?</span></div><div><br><span></span></div><div><span>Also, I've never been able to get any version of the assemblygen-based Qyoto to work under Linux, not even a debug build.  It crashes in the first call to QObject.Connect().<br></span></div><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "
 class="yiv882874277yui_3_2_0_20_1338046173465111"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465113"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465119"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465121"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465123"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465129"><div style="font-size: 12pt; font-family: 'times
 new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465131"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465133"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465139"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465141"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465143"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465149"><div
 style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465151"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465153"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465159"><div style="font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465161"><div style="font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465163"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465169"><div style="font-size: 12pt; font-family: times, serif; "
 class="yiv882874277yui_3_2_0_20_1338046173465171"><div style="font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465173"><div id="yiv882874277"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465179"><div style="font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465181"><div style="font-size: 12pt; font-family: times, serif; " class="yiv882874277yui_3_2_0_20_1338046173465183"><br> </div> </div> 
 </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div></div></body></html>