pdf_name_tree.c

changeset 89
7a891425fa24
parent 88
a9991578aa3f
child 113
d9a9ee9ff098
     1.1 diff -r a9991578aa3f -r 7a891425fa24 pdf_name_tree.c
     1.2 --- a/pdf_name_tree.c	Sat Mar 08 09:23:05 2003 +0000
     1.3 +++ b/pdf_name_tree.c	Sat Mar 08 09:31:23 2003 +0000
     1.4 @@ -4,7 +4,7 @@
     1.5   *      will be compressed using ITU-T T.6 (G4) fax encoding.
     1.6   *
     1.7   * PDF routines
     1.8 - * $Id: pdf_name_tree.c,v 1.6 2003/03/08 01:23:05 eric Exp $
     1.9 + * $Id: pdf_name_tree.c,v 1.7 2003/03/08 01:31:23 eric Exp $
    1.10   * Copyright 2003 Eric Smith <eric@brouhaha.com>
    1.11   *
    1.12   * This program is free software; you can redistribute it and/or modify
    1.13 @@ -116,6 +116,12 @@
    1.14        tree->root = new_root_node;
    1.15      }
    1.16  
    1.17 +  if (parent->count == MAX_NAME_TREE_NODE_ENTRIES)
    1.18 +    {
    1.19 +      pdf_split_name_tree_node (tree, parent);
    1.20 +      parent = node->parent;
    1.21 +    }
    1.22 +
    1.23    new_node = pdf_calloc (1, sizeof (struct pdf_name_tree_node));
    1.24    new_node->parent = parent;
    1.25    new_node->leaf = node->leaf;
    1.26 @@ -133,9 +139,14 @@
    1.27    memcpy (& new_node->values [0],
    1.28  	  & node->values [i],
    1.29  	  j * sizeof (struct pdf_obj *));
    1.30 +
    1.31    node->count = i;
    1.32    new_node->count = j;
    1.33  
    1.34 +  if (! new_node->leaf)
    1.35 +    for (i = 0; i < j; i++)
    1.36 +      new_node->kids [i]->parent = new_node;
    1.37 +
    1.38    /* set max_key of the old node */
    1.39    if (node->leaf)
    1.40      node->max_key = node->keys [node->count - 1];