Commit de06ef64c4ff321258e8c7a03c9fee46b5e1be39

Fix gnus startup in a separate thread.
  
26662666 {
26672667 if (CONSP (XCAR (alist))
26682668 && (sym = XCAR (XCAR (alist)), SYMBOLP (sym))
2669 && (blocal_get_thread_data (XBUFFER_LOCAL_VALUE (SYMBOL_VALUE (sym)),
2670 sym), 1)
26692671 /* Need not do anything if some other buffer's binding is
26702672 now encached. */
26712673 && EQ (BLOCAL_BUFFER (XBUFFER_LOCAL_VALUE (SYMBOL_VALUE (sym))),
src/data.c
(10 / 1)
  
813813 return &XCDR_AS_LVALUE (ensure_thread_local (&(blv->realvalue)));
814814}
815815
816/* Retrieve the buffer local data for the caller thread. SYMBOL is used only
817 when the specified buffer local value does not have a binding for the thread
818 and a new one must be created. */
819
816820Lisp_Object *
817821blocal_get_thread_data (struct Lisp_Buffer_Local_Value *l, Lisp_Object symbol)
818822{
825825 {
826826 Lisp_Object tem, val, len;
827827
828 if (NILP (symbol))
828 if (NILP (symbol) || !initialized)
829829 abort ();
830830
831831 XSETFASTINT (len, 4);
13971397 if (XSYMBOL (symbol)->indirect_variable)
13981398 XSETSYMBOL (symbol, indirect_variable (XSYMBOL (symbol)));
13991399
1400 blocal_get_thread_data (XBUFFER_LOCAL_VALUE (valcontents), symbol);
1401
14001402 /* What binding is loaded right now? */
14011403 current_alist_element
14021404 = XCAR (BLOCAL_CDR (XBUFFER_LOCAL_VALUE (valcontents)));
15181518 But the `realvalue' slot may be more up to date, since
15191519 ordinary setq stores just that slot. So use that. */
15201520 Lisp_Object current_alist_element, alist_element_car;
1521
1522 blocal_get_thread_data (XBUFFER_LOCAL_VALUE (valcontents), symbol);
1523
15211524 current_alist_element
15221525 = XCAR (BLOCAL_CDR (XBUFFER_LOCAL_VALUE (valcontents)));
15231526 alist_element_car = XCAR (current_alist_element);