diff options
author | Havoc Pennington <hp@redhat.com> | 2001-06-14 22:25:23 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-06-14 22:25:23 +0000 |
commit | a00219677324464faef05f66ba7e1d2b97229e12 (patch) | |
tree | df2d58a2f756093c8d2393805e98934ecfcd882b /gtk/gtktextbtree.c | |
parent | cf2fab907731469bc0753b4f73b04c11633d336c (diff) | |
download | gtk+-a00219677324464faef05f66ba7e1d2b97229e12.tar.gz |
fix other typo
2001-06-14 Havoc Pennington <hp@redhat.com>
* gtk/gtkwindow.c (window_group_cleanup_grabs): fix other typo
* gtk/gtkwidget.c (gtk_widget_propagate_state): fix typo
* gtk/gtktextbtree.c: don't leak node data all over the place.
* demos/gtk-demo/main.c (main): create fontify tags for the right
buffer
* gtk/gtktextbuffer.c, gtk/gtktexttagtable.c: enhance docs
to mention tags in the same table can't have the same name,
suggested by Skip Montanaro
2001-06-11 Havoc Pennington <hp@redhat.com>
* gtk/gtktexttagtable.c (gtk_text_tag_table_add): improve warning
for trying to add two tags with same name to the tag table
* demos/gtk-demo/main.c (main): fix colors ;-)
Diffstat (limited to 'gtk/gtktextbtree.c')
-rw-r--r-- | gtk/gtktextbtree.c | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/gtk/gtktextbtree.c b/gtk/gtktextbtree.c index a10baa9481..40e6ca022c 100644 --- a/gtk/gtktextbtree.c +++ b/gtk/gtktextbtree.c @@ -280,6 +280,8 @@ static void gtk_text_btree_node_remove_view (BTreeView gpointer view_id); static void gtk_text_btree_node_destroy (GtkTextBTree *tree, GtkTextBTreeNode *node); +static void gtk_text_btree_node_free_empty (GtkTextBTree *tree, + GtkTextBTreeNode *node); static NodeData * gtk_text_btree_node_ensure_data (GtkTextBTreeNode *node, gpointer view_id); static void gtk_text_btree_node_remove_data (GtkTextBTreeNode *node, @@ -736,7 +738,7 @@ _gtk_text_btree_delete (GtkTextIter *start, prevnode->next = curnode->next; } parent->num_children--; - g_free (curnode); + gtk_text_btree_node_free_empty (tree, curnode); curnode = parent; } curnode = curline->parent; @@ -1361,7 +1363,7 @@ _gtk_text_btree_add_view (GtkTextBTree *tree, GtkTextLineData *line_data; g_return_if_fail (tree != NULL); - + view = g_new (BTreeView, 1); view->view_id = layout; @@ -1390,14 +1392,14 @@ _gtk_text_btree_add_view (GtkTextBTree *tree, void _gtk_text_btree_remove_view (GtkTextBTree *tree, - gpointer view_id) + gpointer view_id) { BTreeView *view; GtkTextLine *last_line; GtkTextLineData *line_data; g_return_if_fail (tree != NULL); - + view = tree->views; while (view != NULL) @@ -1557,9 +1559,9 @@ queue_tag_redisplay (GtkTextBTree *tree, void _gtk_text_btree_tag (const GtkTextIter *start_orig, - const GtkTextIter *end_orig, - GtkTextTag *tag, - gboolean add) + const GtkTextIter *end_orig, + GtkTextTag *tag, + gboolean add) { GtkTextLineSegment *seg, *prev; GtkTextLine *cleanupline; @@ -1577,7 +1579,8 @@ _gtk_text_btree_tag (const GtkTextIter *start_orig, g_return_if_fail (GTK_IS_TEXT_TAG (tag)); g_return_if_fail (_gtk_text_iter_get_btree (start_orig) == _gtk_text_iter_get_btree (end_orig)); - + g_return_if_fail (tag->table == _gtk_text_iter_get_btree (start_orig)->table); + #if 0 printf ("%s tag %s from %d to %d\n", add ? "Adding" : "Removing", @@ -4408,7 +4411,7 @@ static NodeData* node_data_new (gpointer view_id) { NodeData *nd; - + nd = g_new (NodeData, 1); nd->view_id = view_id; @@ -4423,7 +4426,6 @@ node_data_new (gpointer view_id) static void node_data_destroy (NodeData *nd) { - g_free (nd); } @@ -5113,6 +5115,16 @@ gtk_text_btree_node_destroy (GtkTextBTree *tree, GtkTextBTreeNode *node) } } + gtk_text_btree_node_free_empty (tree, node); +} + +static void +gtk_text_btree_node_free_empty (GtkTextBTree *tree, + GtkTextBTreeNode *node) +{ + g_return_if_fail ((node->level > 0 && node->children.node == NULL) || + (node->level == 0 && node->children.line == NULL)); + summary_list_destroy (node->summary); node_data_list_destroy (node->node_data); g_free (node); @@ -5410,8 +5422,9 @@ gtk_text_btree_rebalance (GtkTextBTree *tree, { tree->root_node = node->children.node; tree->root_node->parent = NULL; - summary_list_destroy (node->summary); - g_free (node); + + node->children.node = NULL; + gtk_text_btree_node_free_empty (tree, node); } return; } @@ -5515,8 +5528,10 @@ gtk_text_btree_rebalance (GtkTextBTree *tree, recompute_node_counts (tree, node); node->next = other->next; node->parent->num_children--; - summary_list_destroy (other->summary); - g_free (other); + + other->children.node = NULL; + other->children.line = NULL; + gtk_text_btree_node_free_empty (tree, other); continue; } |