Move __sglue initializations to __sfp()

Moved last remaining  __sglue initializations from __sinit() to
__sfp(). The move better encapsulates access to __sglue and
facilitates its decoupling from struct _reent in a follow-on patch.
This commit is contained in:
Matt Joyce 2022-05-03 06:17:15 +02:00 committed by Sebastian Huber
parent d83aa402b7
commit a7bdda0503
1 changed files with 7 additions and 3 deletions

View File

@ -151,8 +151,14 @@ __sfp (struct _reent *d)
_newlib_sfp_lock_start ();
if (_GLOBAL_REENT->__cleanup == NULL)
if (_GLOBAL_REENT->__cleanup == NULL) {
#ifdef _REENT_GLOBAL_STDIO_STREAMS
_GLOBAL_REENT->__sglue._niobs = 3;
_GLOBAL_REENT->__sglue._iobs = &__sf[0];
#endif
__sinit (_GLOBAL_REENT);
}
for (g = &_GLOBAL_REENT->__sglue;; g = g->_next)
{
for (fp = g->_iobs, n = g->_niobs; --n >= 0; fp++)
@ -256,8 +262,6 @@ __sinit (struct _reent *s)
#ifdef _REENT_GLOBAL_STDIO_STREAMS
if (__sf[0]._cookie == NULL) {
_GLOBAL_REENT->__sglue._niobs = 3;
_GLOBAL_REENT->__sglue._iobs = &__sf[0];
stdin_init (&__sf[0]);
stdout_init (&__sf[1]);
stderr_init (&__sf[2]);