eras = new_eras;
_nl_init_era_entries (void){  size_t cnt;  __libc_lock_lock (__libc_setlocale_lock);  if (era_initialized == 0)    {      size_t new_num_eras = _NL_CURRENT_WORD (LC_TIME,					      _NL_TIME_ERA_NUM_ENTRIES);      if (new_num_eras == 0)	{	  free (eras);	  eras = NULL;	}      else	{	  if (num_eras != new_num_eras)	    eras = (struct era_entry *) realloc (eras,						 new_num_eras						 * sizeof (struct era_entry));	  if (eras == NULL)	    {	      num_eras = 0;	      eras = NULL;	    }          else	    {	      const char *ptr = _NL_CURRENT (LC_TIME, _NL_TIME_ERA_ENTRIES);	      num_eras = new_num_eras;	      for (cnt = 0; cnt < num_eras; ++cnt)		{		  const char *base_ptr = ptr;		  memcpy ((void *) (eras + cnt), (const void *) ptr,			  sizeof (uint32_t) * 8);		  if (ERA_DATE_CMP(eras[cnt].start_date,				   eras[cnt].stop_date))		    if (eras[cnt].direction == (uint32_t) '+')		      eras[cnt].absolute_direction = 1;		    else		      eras[cnt].absolute_direction = -1;		  else		    if (eras[cnt].direction == (uint32_t) '+')		      eras[cnt].absolute_direction = -1;		    else		      eras[cnt].absolute_direction = 1;		  /* Skip numeric values.  */		  ptr += sizeof (uint32_t) * 8;		  /* Set and skip era name.  */		  eras[cnt].era_name = ptr;		  ptr = strchr (ptr, '\0') + 1;		  /* Set and skip era format.  */		  eras[cnt].era_format = ptr;		  ptr = strchr (ptr, '\0') + 1;		  ptr += 3 - (((ptr - (const char *) base_ptr) + 3) & 3);		  /* Set and skip wide era name.  */		  eras[cnt].era_wname = (wchar_t *) ptr;		  ptr = (char *) (wcschr ((wchar_t *) ptr, L'\0') + 1);		  /* Set and skip wide era format.  */		  eras[cnt].era_wformat = (wchar_t *) ptr;		  ptr = (char *) (wcschr ((wchar_t *) ptr, L'\0') + 1);		}	    }	}      era_initialized = 1;    }  __libc_lock_unlock (__libc_setlocale_lock);}