Skip to content

A Julia binding and a crash on second call. #75

@joa-quim

Description

@joa-quim

Hi, on Windows10 64 here

I made a quick wrapper of libui to Julia and ported the controlgallery example as well a very stripped down example that looks almost like in C

    o = Libui.uiInitOptions(0);
    err = uiInit(Ref(o));
    menu = uiNewMenu("File");

    item = uiMenuAppendItem(menu, "Item");
    item = uiMenuAppendQuitItem(menu);
    mainwin = uiNewWindow("Window", 640, 480, 1);
    uiWindowOnClosing(mainwin, cfunction(onClosing, Ptr{Void}, (Ptr{uiWindow},)), C_NULL);
    uiControlShow(convert(Ptr{uiControl}, mainwin));
    uiMain();
    uiUninit();

The thing is that this works on first call but crashes on second. I than built a libui debug version and caught the crash inside debug.cpp/realbug() at the end of that function.

Don't know what made it crash but noticed that the msg variable in that function has this content

Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:
00000000001FE340 char[]

Ah, and the crash seams to be triggered by the menu = uiNewMenu("File"); command. If I comment it above than no crash.
Note that when we run it via Julia any eventual leaks/conflicts left over from first call are potentially left visible in posteriors calls, but the same is probably true for other language bindings.

Joaquim

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions