diff options
| author | Mattias EngdegÄrd | 2024-01-07 18:52:48 +0100 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2024-01-12 18:03:05 +0100 |
| commit | 8b7a6d7b6deca9346092501dbfa679e3e5ea5892 (patch) | |
| tree | a08e1c6a4a946e422de1b22bf6f2b45aa558b6e7 /src | |
| parent | 4b7985db11c0fd3a3346a05f271eff9ad687851b (diff) | |
| download | emacs-8b7a6d7b6deca9346092501dbfa679e3e5ea5892.tar.gz emacs-8b7a6d7b6deca9346092501dbfa679e3e5ea5892.zip | |
; * src/lisp.h (struct Lisp_Hash_Table): Add ASCII art.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/lisp.h b/src/lisp.h index 0421cb68c10..e80a6388657 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2405,11 +2405,33 @@ struct hash_table_test | |||
| 2405 | 2405 | ||
| 2406 | struct Lisp_Hash_Table | 2406 | struct Lisp_Hash_Table |
| 2407 | { | 2407 | { |
| 2408 | /* Change pdumper.c if you change the fields here. */ | ||
| 2409 | |||
| 2410 | /* This is for Lisp; the hash table code does not refer to it. */ | ||
| 2411 | union vectorlike_header header; | 2408 | union vectorlike_header header; |
| 2412 | 2409 | ||
| 2410 | /* Hash table internal structure: | ||
| 2411 | |||
| 2412 | Lisp key index table | ||
| 2413 | | vector | ||
| 2414 | | hash fn hash key value next | ||
| 2415 | v +--+ +------+-------+------+----+ | ||
| 2416 | hash value |-1| | C351 | cow | moo | -1 |<- | ||
| 2417 | | +--+ +------+-------+------+----+ | | ||
| 2418 | ------------>| -------->| 07A8 | cat | meow | -1 | | | ||
| 2419 | range +--+ +------+-------+------+----+ | | ||
| 2420 | reduction |-1| ->| 91D2 | dog | woof | ---- | ||
| 2421 | +--+ | +------+-------+------+----+ | ||
| 2422 | | ------ | ? |unbound| ? | -1 |<- | ||
| 2423 | +--+ +------+-------+------+----+ | | ||
| 2424 | | -------->| F6B0 | duck |quack | -1 | | | ||
| 2425 | +--+ +------+-------+------+----+ | | ||
| 2426 | |-1| ->| ? |unbound| ? | ---- | ||
| 2427 | +--+ | +------+-------+------+----+ | ||
| 2428 | : : | : : : : : | ||
| 2429 | | | ||
| 2430 | next_free | ||
| 2431 | |||
| 2432 | The table is physically split into three vectors (hash, next, | ||
| 2433 | key_and_value) which may or may not be beneficial. */ | ||
| 2434 | |||
| 2413 | /* Nil if table is non-weak. Otherwise a symbol describing the | 2435 | /* Nil if table is non-weak. Otherwise a symbol describing the |
| 2414 | weakness of the table. */ | 2436 | weakness of the table. */ |
| 2415 | Lisp_Object weak; | 2437 | Lisp_Object weak; |