[Geany-Devel] Problem with a plugin I'm working on
Nick Treleaven
nick.treleaven at xxxxx
Wed Apr 3 13:08:44 UTC 2013
On 02/04/2013 22:53, Steven Blatnick wrote:
> I've started writing some plugins for geany on github, but I'm running
> into a problem. C is not my language of expertise, so I thought I would
> see if I'm just doing something stupid.
>
> *The Problem:*
>
> The basic problem is that I have a struct I'm using to pass information
> around like an object, but the information isn't staying with the struct
> when retrieving it from a TreeView.
I think the problem is this line:
list = gtk_tree_store_new(1, G_TYPE_STRING);
later:
Tool *tool
...
gtk_tree_store_set(list, &row, 0, tool, -1);
You should probably be using G_TYPE_POINTER instead of G_TYPE_STRING.
See:
http://en.wikibooks.org/wiki/GTK%2B_By_Example/Tree_View/Tree_Models
"G_TYPE_STRING - stores a string in the store (makes a copy of the
original string)
G_TYPE_POINTER - stores a pointer value (does not copy any data into the
store, just stores the pointer value!)"
> Also, one of the things I love about Geany is how little memory it uses,
> so feel free to give me pointers on when I need to free up memory,
> because I don't want my code to leak.
Well, I didn't study your code for long, but:
Tool *tool = g_slice_new(Tool);
Somehow you need to g_slice_free(Tool, tool) for each call to
g_slice_new. Maybe by iterating the tree store when you've finished
using it.
More information about the Devel
mailing list