From 53c7e292bce4149f410144852f6bd98822dc4dbd Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Fri, 12 Oct 2012 12:13:05 +0200 Subject: [PATCH] Accessors optimized using the new slot location table --- src/c/clos/accessor.d | 5 ++--- src/c/symbols_list.h | 1 + src/c/symbols_list2.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/c/clos/accessor.d b/src/c/clos/accessor.d index ecf17815d..3ed00ee34 100644 --- a/src/c/clos/accessor.d +++ b/src/c/clos/accessor.d @@ -59,9 +59,8 @@ slot_method_index(cl_object gfun, cl_object instance, cl_object args) else { cl_object table = _ecl_funcall3(@'slot-value', ECL_CLASS_OF(instance), - @'clos::slot-table'); - cl_object slotd = ecl_gethash_safe(slot_name, table, OBJNULL); - return _ecl_funcall3(@'slot-value', slotd, @'ext::location'); + @'clos::location-table'); + return ecl_gethash_safe(slot_name, table, OBJNULL); } } diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index 181ef38a1..125d4467a 100755 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -1679,6 +1679,7 @@ cl_symbols[] = { {CLOS_ "GENERIC-FUNCTION-METHODS", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "GENERIC-FUNCTION-NAME", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "INTERN-EQL-SPECIALIZER", CLOS_ORDINARY, NULL, -1, OBJNULL}, +{CLOS_ "LOCATION-TABLE", CLOS_ORDINARY | PRIVATE, NULL, -1, OBJNULL}, {CLOS_ "MAKE-METHOD-LAMBDA", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "MAP-DEPENDENTS", CLOS_ORDINARY, NULL, -1, OBJNULL}, {CLOS_ "METAOBJECT", CLOS_ORDINARY, NULL, -1, OBJNULL}, diff --git a/src/c/symbols_list2.h b/src/c/symbols_list2.h index 1be82974c..307d05533 100644 --- a/src/c/symbols_list2.h +++ b/src/c/symbols_list2.h @@ -1679,6 +1679,7 @@ cl_symbols[] = { {CLOS_ "GENERIC-FUNCTION-METHODS",NULL}, {CLOS_ "GENERIC-FUNCTION-NAME",NULL}, {CLOS_ "INTERN-EQL-SPECIALIZER",NULL}, +{CLOS_ "LOCATION-TABLE",NULL}, {CLOS_ "MAKE-METHOD-LAMBDA",NULL}, {CLOS_ "MAP-DEPENDENTS",NULL}, {CLOS_ "METAOBJECT",NULL},