X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fdynbind.c;h=9acc23bd75ea3a09a035086c0ea6b60e170eda01;hb=ee5629ee974ee8ce7a1cb245a99e94f8943ffd90;hp=1d62ee0ecec0501420f2278deed4ed3becae3830;hpb=1d329efe312141d5385af1d2e98f72f938b5f7b6;p=sbcl.git diff --git a/src/runtime/dynbind.c b/src/runtime/dynbind.c index 1d62ee0..9acc23b 100644 --- a/src/runtime/dynbind.c +++ b/src/runtime/dynbind.c @@ -44,9 +44,8 @@ void bind_variable(lispobj symbol, lispobj value, void *th) get_spinlock(tls_index_lock,(long)th); if(!sym->tls_index) { sym->tls_index=SymbolValue(FREE_TLS_INDEX,0); - SetSymbolValue(FREE_TLS_INDEX, - make_fixnum(fixnum_value(sym->tls_index)+1),0); - if(fixnum_value(sym->tls_index)>=TLS_SIZE) { + SetSymbolValue(FREE_TLS_INDEX, sym->tls_index+N_WORD_BYTES, 0); + if((sym->tls_index)>=(TLS_SIZE << WORD_SHIFT)) { lose("Thread local storage exhausted."); } }