Menu

How To Get Code For Bug Fix

2010-08-11
2013-04-20
  • Keith Vetter

    Keith Vetter - 2010-08-11

    I'm new to Sourceforge.  I was hoping to see what files changed for issue 3025343 (core dump when selecting and moving a node).  I downloaded the latest subversion cut auber*.tgz, but still have the problem.  Any help would be greatly appreciated.

     
  • packadal

    packadal - 2010-08-11

    Hi,

    Theoretically you should be able to find the revision that fixed the bug by searching through the revision comments.
    However it would seem this bug was fixed before the report was made, so the comment does not include the bug identifier.
    Sadly, the person who did fix it is in holidays until September, so I cannot tell you which revision fixed this particular bug.

    However, this seems to work fine on my computer.
    Where did you get the tgz file you are referring to ?

    Also, I would recommend you to use the stable version of Tulip (currently 3.4.0, you can find the sources here), or using svn if you really want the latest version of Tulip.

     
  • Keith Vetter

    Keith Vetter - 2010-08-11

    My first thought is, maybe I should go on vacation until September :-)

    This bug is specific to Windows I believe.  I have to use Windows because I have to program by voice using a program only available on Windows.  I'm actually fairly new to Windows too.

    The first *.tgz was 3.4.0, I think.  Here is the top of the *.spec file:

    %define name    tulip
    %define version 3.4.0
    %define tulip_version 3.4
    %define release 1
    %define serial  1
    

    After seeing the problem there, I tried downloading http://auber.svn.sourceforge.net/viewvc/auber/?view=tar

    At the risk of overwhelming, here is the debug stack.  I'm going to take a stab at fixing it.

    (gdb) where
    #0  0x0ae33209 in gluEndPolygon () from C:\WINDOWS\system32\glu32.dll
    #1  0x0ae332d8 in gluEndPolygon () from C:\WINDOWS\system32\glu32.dll
    #2  0x0ae346bf in gluEndPolygon () from C:\WINDOWS\system32\glu32.dll
    #3  0x0ae3509e in gluEndPolygon () from C:\WINDOWS\system32\glu32.dll
    #4  0x0ae35686 in gluEndPolygon () from C:\WINDOWS\system32\glu32.dll
    #5  0x0ae32fe4 in gluTessEndPolygon () from C:\WINDOWS\system32\glu32.dll
    #6  0x10202e2b in tlp::GlComplexPolygon::draw (this=0x17f98dd8)
        at tulip\GlComplexPolygon.cpp:257
    #7  0x101c4bd1 in tlp::GlScene::draw (this=0xbd1174c) at tulip\GlScene.cpp:335
    #8  0x101e2c95 in tlp::GlMainWidget::draw (this=0xbd11738, graphChanged=true)
        at tulip\GlMainWidget.cpp:332
    #9  0x101e4ad9 in tlp::GlMainView::draw (this=0xbd1ac28)
        at tulip\GlMainView.cpp:115
    #10 0x10165832 in tlp::NodeLinkDiagramComponent::draw (this=0xbd1ac28)
        at tulip\NodeLinkDiagramComponent.cpp:452
    #11 0x10235a07 in tlp::ControllerViewsManager::drawViews (this=0xbd2a2b0, 
        init=false) at tulip\ControllerViewsManager.cpp:236
    #12 0x1017b3f0 in tlp::MainController::drawViews (this=0xbd2a2b0, init=false)
        at tulip\MainController.cpp:476
    #13 0x1017b4cf in tlp::MainController::update (this=0xbd2a2b0, end=
          {_M_node = 0x17f7df70}) at tulip\MainController.cpp:503
    #14 0x1016214e in tlp::Observable::unholdObservers ()
        at tulip\Observable.cpp:165
    #15 0x10166dd7 in tlp::MouseSelector::eventFilter (this=0x17f4fc98, 
        widget=0xbd11738, e=0x22d624) at tulip\MouseSelector.cpp:209
    #16 0x6a1fd599 in QCoreApplicationPrivate::sendThroughObjectEventFilters (
        this=0xaefc778, receiver=0xbd11738, event=0x22d624)
        at kernel\qcoreapplication.cpp:819
    #17 0x026224ff in QApplicationPrivate::notify_helper (this=0xaefc778, 
        receiver=0xbd11738, e=0x22d624) at kernel\qapplication.cpp:4296
    #18 0x02620723 in QApplication::notify (this=0x22fe78, receiver=0xbd11738, 
        e=0x22d624) at kernel\qapplication.cpp:3865
    #19 0x6a1fd302 in QCoreApplication::notifyInternal (this=0x22fe78, 
        receiver=0xbd11738, event=0x22d624) at kernel\qcoreapplication.cpp:704
    #20 0x02c76eba in QCoreApplication::sendSpontaneousEvent (receiver=0xbd11738, 
        event=0x22d624)
        at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
    #21 0x0261ef40 in QApplicationPrivate::sendMouseEvent (receiver=0xbd11738, 
        event=0x22d624, alienWidget=0x0, nativeWidget=0xbd11738, 
        buttonDown=0x307441c, lastMouseReceiver=@0x3074420, spontaneous=true)
        at kernel\qapplication.cpp:2963
    #22 0x02687f10 in QETWidget::translateMouseEvent (this=0xbd11738, 
        msg=@0x22db00) at kernel\qapplication_win.cpp:3230
    
     
  • Keith Vetter

    Keith Vetter - 2010-08-11

    Thank you very much.  Now that you have given me the fix, I think the latest 3.5.0 dev has the fix too.  After I rebuilt 3.5.0, Windows was linking in the previous libtulip.dll.  That was my fault.

    Thanks, again.

    BTW, I am using Tulip to build simulations of robotic arms, "detangle" 3D projections, viz link structure of robot etc.  Out of the box, the plugin architecture is versatile enough to do most of what I need.

     
  • Keith Vetter

    Keith Vetter - 2010-08-11

    After syncing with your repository, I am guessing this is the issue:

        - bug fix on callback for windows (strange cast)
        
        git-svn-id: https://auber.svn.sourceforge.net/svnroot/auber@1706 f5d4c5f9-c943-4916-8a57-bd8605bf961c
    --------------- tulip/library/tulip-ogl/src/GlComplexPolygon.cpp ---------------
    index 9f7e173..67319d1 100644
    @@ -23,7 +23,12 @@
     // inspired from ftgl/FTGL.h & ftgl/FTVectoriser.cpp
         #define  WIN32_LEAN_AND_MEAN
         #include <windows.h>
    -    typedef GLvoid (CALLBACK *GLUTesselatorFunction)( );
    +    namespace tlp {
    +      void CALLBACK beginCallback(GLenum which);
    +      void CALLBACK endCallback(void);
    +      void CALLBACK errorCallback(GLenum errorCode);
    +      void CALLBACK vertexCallback(GLvoid *vertex);
    +    }
     #else
         #error "Error - need to define type GLUTesselatorFunction for this platform/compiler"
     #endif
    @@ -164,6 +169,16 @@ namespace tlp {
         GLUtesselator *tobj;
         tobj = gluNewTess();
    
    +#ifdef WIN32
    +    gluTessCallback(tobj, GLU_TESS_VERTEX,
    +        (void (__stdcall*)(void))vertexCallback);
    +    gluTessCallback(tobj, GLU_TESS_BEGIN,
    +        (void (__stdcall*)(void))beginCallback);
    +    gluTessCallback(tobj, GLU_TESS_END,
    +        (void (__stdcall*)(void))endCallback);
    +    gluTessCallback(tobj, GLU_TESS_ERROR,
    +        (void (__stdcall*)(void))errorCallback);
    +#else
         gluTessCallback(tobj, GLU_TESS_VERTEX,
                (GLUTesselatorFunction)vertexCallback);
         gluTessCallback(tobj, GLU_TESS_BEGIN,
    @@ -172,6 +187,7 @@ namespace tlp {
                (GLUTesselatorFunction)endCallback);
         gluTessCallback(tobj, GLU_TESS_ERROR,
                (GLUTesselatorFunction)errorCallback);
    +#endif
    
         glShadeModel(GL_SMOOTH);
    
     

Log in to post a comment.