Better explanation of why the keys get duplicated in _ecl_standard_dispatch().

This commit is contained in:
Juan Jose Garcia Ripoll 2011-12-15 00:07:45 +01:00
parent 198ecd50c2
commit 4b565e6955

View file

@ -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;