dl@ROCKY.OSWEGO.EDU (Doug Lea) (01/27/89)
Here is a fix to the failure of AVLs to check for null trees when attempting to delete items. This problem caused core dumps in test19 on some machines (but not on my vax, which loves to dereference null pointers!) Sorry. R>cd libg++/g++-include R>diff -rc2N AVLSet.ccP~ AVLSet.ccP *** AVLSet.ccP~ Wed Jan 4 15:35:01 1989 --- AVLSet.ccP Wed Jan 18 06:07:33 1989 *************** *** 550,553 **** --- 550,554 ---- void <T>AVLSet::del(<T&> item) { + if (root == 0) return; _need_rebalancing = 0; _already_found = 0; R>diff -rc2N AVLMap.ccP~ AVLMap.ccP *** AVLMap.ccP~ Wed Jan 4 15:35:01 1989 --- AVLMap.ccP Wed Jan 18 06:07:26 1989 *************** *** 550,553 **** --- 550,554 ---- void <T><C>AVLMap::del(<T&> item) { + if (root == 0) return; _need_rebalancing = 0; _already_found = 0; Also, while I'm at it, the following change to the top-level libg++ Makefile seems to make some machines happier. R>cd ~/libg++ R>diff -rc2N Makefile~ Makefile *** Makefile~ Tue Jan 10 14:01:30 1989 --- Makefile Fri Jan 27 06:19:42 1989 *************** *** 56,60 **** cp g++-include/* $(IDIR) install -c -m 755 genclass $(BINDIR) ! install -c src/libg++.a $(LIBDIR) ranlib $(LIBDIR)/libg++.a --- 56,60 ---- cp g++-include/* $(IDIR) install -c -m 755 genclass $(BINDIR) ! (cd src; install -c libg++.a $(LIBDIR)) ranlib $(LIBDIR)/libg++.a -Doug