Function: make-symbol
make-symbol is a function defined in alloc.c.
Signature
(make-symbol NAME)
Documentation
Return a newly allocated uninterned symbol whose name is NAME.
Its value is void, and its function definition and property list are nil.
Other relevant functions are documented in the symbol group.
Shortdoc
;; symbol
(make-symbol "abc")
=> abc
Source Code
// Defined in /usr/src/emacs/src/alloc.c
{
Lisp_Object val;
CHECK_STRING (name);
if (symbol_free_list)
{
ASAN_UNPOISON_SYMBOL (symbol_free_list);
XSETSYMBOL (val, symbol_free_list);
symbol_free_list = symbol_free_list->u.s.next;
}
else
{
if (symbol_block_index == SYMBOL_BLOCK_SIZE)
{
struct symbol_block *new
= lisp_malloc (sizeof *new, false, MEM_TYPE_SYMBOL);
ASAN_POISON_SYMBOL_BLOCK (new);
new->next = symbol_block;
symbol_block = new;
symbol_block_index = 0;
}
ASAN_UNPOISON_SYMBOL (&symbol_block->symbols[symbol_block_index]);
XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index]);
symbol_block_index++;
}
init_symbol (val, name);
tally_consing (sizeof (struct Lisp_Symbol));
symbols_consed++;
return val;
}