| 231 | */ |
| 232 | |
| 233 | unsigned int add (m_name) |
| 234 | char *m_name; |
| 235 | { |
| 236 | register unsigned int ind = 0; |
| 237 | register int cmp; |
| 238 | |
| 239 | DBUG_ENTER ("add"); |
| 240 | if (n_items == 0) { /* First item to be added */ |
| 241 | s_table[0].pos = ind; |
| 242 | s_table[0].lchild = s_table[0].rchild = MAXPROCS; |
| 243 | addit: |
| 244 | modules[n_items].name = strsave (m_name); |
| 245 | modules[n_items].m_time = 0; |
| 246 | modules[n_items].m_calls = 0; |
| 247 | modules[n_items].m_stkuse = 0; |
| 248 | DBUG_RETURN (n_items++); |
| 249 | } |
| 250 | while ((cmp = strcmp (m_name,modules[ind].name))) { |
| 251 | if (cmp < 0) { /* In left subtree */ |
| 252 | if (s_table[ind].lchild == MAXPROCS) { |
| 253 | /* Add as left child */ |
| 254 | if (n_items >= MAXPROCS) { |
| 255 | fprintf (DBUG_FILE, |
| 256 | "%s: Too many functions being profiled\n", |
| 257 | my_name); |
| 258 | exit (EX_SOFTWARE); |
| 259 | } |
| 260 | s_table[n_items].pos = s_table[ind].lchild = n_items; |
| 261 | s_table[n_items].lchild = s_table[n_items].rchild = MAXPROCS; |
| 262 | #ifdef notdef |
| 263 | modules[n_items].name = strsave (m_name); |
| 264 | modules[n_items].m_time = modules[n_items].m_calls = 0; |
| 265 | DBUG_RETURN (n_items++); |
| 266 | #else |
| 267 | goto addit; |
| 268 | #endif |
| 269 | |
| 270 | } |
| 271 | ind = s_table[ind].lchild; /* else traverse l-tree */ |
| 272 | } else { |
| 273 | if (s_table[ind].rchild == MAXPROCS) { |
| 274 | /* Add as right child */ |
| 275 | if (n_items >= MAXPROCS) { |
| 276 | fprintf (DBUG_FILE, |
| 277 | "%s: Too many functions being profiled\n", |
| 278 | my_name); |
| 279 | exit (EX_SOFTWARE); |
| 280 | } |
| 281 | s_table[n_items].pos = s_table[ind].rchild = n_items; |
| 282 | s_table[n_items].lchild = s_table[n_items].rchild = MAXPROCS; |
| 283 | #ifdef notdef |
| 284 | modules[n_items].name = strsave (m_name); |
| 285 | modules[n_items].m_time = modules[n_items].m_calls = 0; |
| 286 | DBUG_RETURN (n_items++); |
| 287 | #else |
| 288 | goto addit; |
| 289 | #endif |
| 290 | |