This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 A while ago this patch was applied http://www.sourceware.org/ml/newlib/2013/msg00304.html to optimize _REENT_INIT_PTR() with a memset. However, the same change was not done in the _REENT_SMALL case. This patch also removes _ATEXIT_INIT_PTR() and _REENT_INIT_ATEXIT_PTR() since they're no longer used. newlib/ChangeLog 2013-06-23 Terraneo Federico <fede.tft@hotmail.it> * libc/include/sys/reent.h (_ATEXIT_INIT_PTR): Remove. (_REENT_INIT_ATEXIT_PTR): Remove. (_REENT_INIT_PTR): Reduce code size if _REENT_SMALL. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJRxtiRAAoJECkLFtN5Xr9fT38H/0NiVoBMs8kApvDQ1j+f6Rh8 gNGiVnS2T6nPZeX62FXhQwWNDxbFSlYEt3oIXlNVKkQ0XVBGs4ogyMTFjr5g3ak5 i/d01htlHrqI1zBHkg9s6XIB8v79fCWOq08WEVa6n6SrN1J38IxdnDiLUmS4aKKk vvfcDIjGEhixy7J7j7I5xB9TV5WBHFIIxHuigk/xhfKzKokYhgV4ea7D6p1v+nsR 3PdK8+5fdNb+D0ubNplyT4MyuwZcc07jsvupcOZI0E8wl+Rnj0QI4cAODGKva7Tp yeKjWRYH4repXrCQ7YO5n9SbCAxEk2vPYQWIcfOPLl5FXNouUfU7/fhZBXfgBrs= =4TvM -----END PGP SIGNATURE-----
diff -ruN a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h --- a/newlib/libc/include/sys/reent.h 2013-05-09 01:13:51.000000000 +0200 +++ b/newlib/libc/include/sys/reent.h 2013-06-23 11:46:50.967064276 +0200 @@ -86,11 +86,6 @@ struct _on_exit_args * _on_exit_args_ptr; }; # define _ATEXIT_INIT {_NULL, 0, {_NULL}, _NULL} -# define _ATEXIT_INIT_PTR(var) \ - (var)->_next = _NULL; \ - (var)->_ind = 0; \ - (var)->_fns[0] = _NULL; \ - (var)->_on_exit_args_ptr = _NULL #else struct _atexit { struct _atexit *_next; /* next in list */ @@ -100,22 +95,13 @@ struct _on_exit_args _on_exit_args; }; # define _ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}} -# define _ATEXIT_INIT_PTR(var) \ - (var)->_next = _NULL; \ - (var)->_ind = 0; \ - (var)->_fns[0] = _NULL; \ - (var)->_on_exit_args._fntypes = 0; \ - (var)->_on_exit_args._fnargs[0] = _NULL #endif #ifdef _REENT_GLOBAL_ATEXIT # define _REENT_INIT_ATEXIT -# define _REENT_INIT_ATEXIT_PTR(var, var0) #else # define _REENT_INIT_ATEXIT \ _NULL, _ATEXIT_INIT, -# define _REENT_INIT_ATEXIT_PTR(var, var0) \ - (var)->_atexit = _NULL; _ATEXIT_INIT_PTR(var0); #endif /* @@ -458,31 +444,11 @@ } #define _REENT_INIT_PTR(var) \ - { (var)->_stdin = (__FILE *)&__sf_fake_stdin; \ + { memset((var), 0, sizeof(*(var))); \ + (var)->_stdin = (__FILE *)&__sf_fake_stdin; \ (var)->_stdout = (__FILE *)&__sf_fake_stdout; \ (var)->_stderr = (__FILE *)&__sf_fake_stderr; \ - (var)->_errno = 0; \ - (var)->_inc = 0; \ - (var)->_emergency = _NULL; \ - (var)->__sdidinit = 0; \ - (var)->_current_category = 0; \ (var)->_current_locale = "C"; \ - (var)->_mp = _NULL; \ - (var)->__cleanup = _NULL; \ - (var)->_gamma_signgam = 0; \ - (var)->_cvtlen = 0; \ - (var)->_cvtbuf = _NULL; \ - (var)->_r48 = _NULL; \ - (var)->_localtime_buf = _NULL; \ - (var)->_asctime_buf = _NULL; \ - (var)->_sig_func = _NULL; \ - _REENT_INIT_ATEXIT_PTR(var, &(var)->_atexit0) \ - (var)->__sglue._next = _NULL; \ - (var)->__sglue._niobs = 0; \ - (var)->__sglue._iobs = _NULL; \ - (var)->__sf = 0; \ - (var)->_misc = _NULL; \ - (var)->_signal_buf = _NULL; \ } /* Only built the assert() calls if we are built with debugging. */
Attachment:
memset_reent_small.patch.sig
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |