Remove unnecessary calls to __atexit_register_cleanup(), calling __sinit()
authorguenther <guenther@openbsd.org>
Tue, 13 Jan 2015 07:18:21 +0000 (07:18 +0000)
committerguenther <guenther@openbsd.org>
Tue, 13 Jan 2015 07:18:21 +0000 (07:18 +0000)
instead where necessary.

Based on a diff from enh (at) google.com
ok millert@

lib/libc/stdio/makebuf.c
lib/libc/stdio/setvbuf.c

index d47e27c..56e5f21 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: makebuf.c,v 1.8 2005/12/28 18:50:22 millert Exp $ */
+/*     $OpenBSD: makebuf.c,v 1.9 2015/01/13 07:18:21 guenther Exp $ */
 /*-
  * Copyright (c) 1990, 1993
  *     The Regents of the University of California.  All rights reserved.
@@ -65,7 +65,6 @@ __smakebuf(FILE *fp)
                fp->_bf._size = 1;
                return;
        }
-       __atexit_register_cleanup(_cleanup);
        flags |= __SMBF;
        fp->_bf._base = fp->_p = p;
        fp->_bf._size = size;
index 6c49f7a..dc79adc 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: setvbuf.c,v 1.11 2009/11/09 00:18:27 kurt Exp $ */
+/*     $OpenBSD: setvbuf.c,v 1.12 2015/01/13 07:18:21 guenther Exp $ */
 /*-
  * Copyright (c) 1990, 1993
  *     The Regents of the University of California.  All rights reserved.
@@ -114,6 +114,13 @@ nbf:
                flags |= __SMBF;
        }
 
+       /*
+        * We're committed to buffering from here, so make sure we've
+        * registered to flush buffers on exit.
+        */
+       if (!__sdidinit)
+               __sinit();
+
        /*
         * Kill any seek optimization if the buffer is not the
         * right size.
@@ -148,7 +155,6 @@ nbf:
                fp->_w = 0;
        }
        FUNLOCKFILE(fp);
-       __atexit_register_cleanup(_cleanup);
 
        return (ret);
 }