Layout Manager for Nemiver - Weekly Report 13



Hello,

For this final week, I finally fixed the bug I was facing since the
week 11 [1]. To fix this bug I started to look at why these critical
assertions was happening, and discovered that when Gdl::DockItem-s
were destroyed the child wasn't 'unparent-ed'. I looked at the gdl
code to see why GdlDockItem's child was not 'unparent-ed' and saw that
the _dispose function was never called and this is the function that
is supposed to unparent the child. Then my mentor suggested me to
check if the destructor of the Gdl::DockItem was called and it was
indeed not called.
The Gdl::DockItem was obviously not freed, so I checked the reference
counting to see if the counter was hitting 0 and it was. At this point
I didn't really understood why this was going wrong, so I compiled
glibmm and glib to try to understand what was going on.
Afterward I didn't notice something going wrong in those two libraries
so I compiled gtk+ and gtkmm to see what was happening when
g_object_unref was calling the dispose function and discovered that if
the c++ Gdl::DockItem was not managed, it was not freed with manual
calls to unreference.

I also discovered while checking the memory usage of my "Layout
Manager" patch that I was keeping a reference of the DBGPerspective
inside the DBGPerspective's layout manager and consequently blocked
the workbench to free the perspective at exit. I fixed it and updated
my gtk2 + gtk3 patches and sent one of them for review.

I also updated the patch adding a contextual menu to the target
terminal from an old review and sent it also to my mentor for review.



I enjoyed very much working on nemiver during this GSoC and I would
like to thank GNOME for accepting my proposal and I would also like to
thank my mentor Dodji Seketeli, who was a great help to succeed this
GSoC.

Even if this GSoC is over, I plan to continue to send patches to nemiver.

Fabien


[1] https://mail.gnome.org/archives/nemiver-list/2011-August/msg00018.html


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]