Changeset 609 for branches/GNU/src/binutils/include/splay-tree.h
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/include/splay-tree.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* A splay-tree datatype. 2 Copyright 1998, 1999, 2000 Free Software Foundation, Inc.2 Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc. 3 3 Contributed by Mark Mitchell (mark@markmitchell.com). 4 4 5 This file is part of G NUCC.5 This file is part of GCC. 6 6 7 G NUCC is free software; you can redistribute it and/or modify it7 GCC is free software; you can redistribute it and/or modify it 8 8 under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation; either version 2, or (at your option) 10 10 any later version. 11 11 12 G NUCC is distributed in the hope that it will be useful, but12 GCC is distributed in the hope that it will be useful, but 13 13 WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU … … 16 16 17 17 You should have received a copy of the GNU General Public License 18 along with G NUCC; see the file COPYING. If not, write to18 along with GCC; see the file COPYING. If not, write to 19 19 the Free Software Foundation, 59 Temple Place - Suite 330, 20 20 Boston, MA 02111-1307, USA. */ … … 35 35 #endif /* __cplusplus */ 36 36 37 #include <ansidecl.h> 37 #include "ansidecl.h" 38 39 #ifndef GTY 40 #define GTY(X) 41 #endif 38 42 39 43 /* Use typedefs for the key and data types to facilitate changing … … 62 66 typedef int (*splay_tree_foreach_fn) PARAMS((splay_tree_node, void*)); 63 67 68 /* The type of a function used to allocate memory for tree root and 69 node structures. The first argument is the number of bytes needed; 70 the second is a data pointer the splay tree functions pass through 71 to the allocator. This function must never return zero. */ 72 typedef PTR (*splay_tree_allocate_fn) PARAMS((int, void *)); 73 74 /* The type of a function used to free memory allocated using the 75 corresponding splay_tree_allocate_fn. The first argument is the 76 memory to be freed; the latter is a data pointer the splay tree 77 functions pass through to the freer. */ 78 typedef void (*splay_tree_deallocate_fn) PARAMS((void *, void *)); 79 64 80 /* The nodes in the splay tree. */ 65 struct splay_tree_node_s 81 struct splay_tree_node_s GTY(()) 66 82 { 67 83 /* The key. */ 68 splay_tree_key key;84 splay_tree_key GTY ((use_param1 (""))) key; 69 85 70 86 /* The value. */ 71 splay_tree_value value;87 splay_tree_value GTY ((use_param2 (""))) value; 72 88 73 89 /* The left and right children, respectively. */ 74 splay_tree_node left;75 splay_tree_node right;90 splay_tree_node GTY ((use_params (""))) left; 91 splay_tree_node GTY ((use_params (""))) right; 76 92 }; 77 93 78 94 /* The splay tree itself. */ 79 typedef struct splay_tree_s 95 struct splay_tree_s GTY(()) 80 96 { 81 97 /* The root of the tree. */ 82 splay_tree_node root;98 splay_tree_node GTY ((use_params (""))) root; 83 99 84 100 /* The comparision function. */ … … 90 106 /* The deallocate-value function. NULL if no cleanup is necessary. */ 91 107 splay_tree_delete_value_fn delete_value; 92 } *splay_tree; 108 109 /* Allocate/free functions, and a data pointer to pass to them. */ 110 splay_tree_allocate_fn allocate; 111 splay_tree_deallocate_fn deallocate; 112 PTR GTY((skip (""))) allocate_data; 113 114 }; 115 typedef struct splay_tree_s *splay_tree; 93 116 94 117 extern splay_tree splay_tree_new PARAMS((splay_tree_compare_fn, 95 118 splay_tree_delete_key_fn, 96 119 splay_tree_delete_value_fn)); 120 extern splay_tree splay_tree_new_with_allocator 121 PARAMS((splay_tree_compare_fn, 122 splay_tree_delete_key_fn, 123 splay_tree_delete_value_fn, 124 splay_tree_allocate_fn, 125 splay_tree_deallocate_fn, 126 void *)); 97 127 extern void splay_tree_delete PARAMS((splay_tree)); 98 128 extern splay_tree_node splay_tree_insert … … 111 141 PARAMS((splay_tree, 112 142 splay_tree_key)); 143 extern splay_tree_node splay_tree_max 144 PARAMS((splay_tree)); 145 extern splay_tree_node splay_tree_min 146 PARAMS((splay_tree)); 113 147 extern int splay_tree_foreach PARAMS((splay_tree, 114 148 splay_tree_foreach_fn, -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.