I'm do not know much about gtk, but I've been looking through the code and have an idea:
you have a get_pixbuf() method that loads the file and returns a pointer with ref. counter at 1, after that you are scaling it and creating m_pixbufFull and m_pixbuf ( rescaling twice in a row not very good :P )
but after that what happens with the first pixbuf? you call
g_object_unref (m_pixbuf);
g_object_unref (m_pixbufFull);
but nothing for the first one, I pushed a small fix, after 20 switched on 2 small images, used memory dropped from 6.5% to 4%, so there is something else, I'll keep looking
----------------------------
now, as I understand, iText does not have any destroy method and end() does nothing
iPdf and iDocument destroy methods do nothing
will look other plugins later
I'm do not know much about gtk, but I've been looking through the code and have an idea:
you have a get_pixbuf() method that loads the file and returns a pointer with ref. counter at 1, after that you are scaling it and creating m_pixbufFull and m_pixbuf ( rescaling twice in a row not very good :P )
but after that what happens with the first pixbuf? you call
g_object_unref (m_pixbuf);
g_object_unref (m_pixbufFull);
but nothing for the first one, I pushed a small fix, after 20 switched on 2 small images, used memory dropped from 6.5% to 4%, so there is something else, I'll keep looking
------- ------- ------- -------
now, as I understand, iText does not have any destroy method and end() does nothing
iPdf and iDocument destroy methods do nothing
will look other plugins later