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] |