int level; /* Level of this node in the B-tree.
* 0 refers to the bottom of the tree
* (children are lines, not nodes). */
+ int num_lines; /* Total number of lines (leaves) in
+ * the subtree rooted here. */
+ int num_chars; /* Number of chars below here */
+ int num_children; /* Number of children of this node. */
union { /* First in linked list of children. */
struct _GtkTextBTreeNode *node; /* Used if level > 0. */
GtkTextLine *line; /* Used if level == 0. */
} children;
- int num_children; /* Number of children of this node. */
- int num_lines; /* Total number of lines (leaves) in
- * the subtree rooted here. */
- int num_chars; /* Number of chars below here */
NodeData *node_data;
};
{
GtkTextLine *line;
- line = g_new0(GtkTextLine, 1);
+ line = g_slice_new0 (GtkTextLine);
line->dir_strong = PANGO_DIRECTION_NEUTRAL;
line->dir_propagated_forward = PANGO_DIRECTION_NEUTRAL;
line->dir_propagated_back = PANGO_DIRECTION_NEUTRAL;
ld = next;
}
- g_free (line);
+ g_slice_free (GtkTextLine, line);
}
static void
{
GtkTextBTreeNode *node;
- node = g_new (GtkTextBTreeNode, 1);
+ node = g_slice_new (GtkTextBTreeNode);
node->node_data = NULL;
summary_list_destroy (node->summary);
node_data_list_destroy (node->node_data);
- g_free (node);
+ g_slice_free (GtkTextBTreeNode, node);
}
static NodeData*