mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-16 14:21:48 -08:00
Better explanation of why the keys get duplicated in _ecl_standard_dispatch().
This commit is contained in:
parent
198ecd50c2
commit
4b565e6955
1 changed files with 4 additions and 2 deletions
|
|
@ -177,11 +177,13 @@ _ecl_standard_dispatch(cl_object frame, cl_object gf)
|
|||
if (e->key != OBJNULL) {
|
||||
func = e->value;
|
||||
} else {
|
||||
/* The keys and the cache may change while we
|
||||
* compute the applicable methods. We must save
|
||||
* the keys and recompute the cache location if
|
||||
* it was filled. */
|
||||
cl_object keys = cl_copy_seq(vector);
|
||||
func = compute_applicable_method(frame, gf);
|
||||
if (e->key != OBJNULL) {
|
||||
/* The cache might have changed while we
|
||||
* computed applicable methods */
|
||||
e = ecl_search_cache(cache);
|
||||
}
|
||||
e->key = keys;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue