2017-04-26 Lee Duhem <lee.du...@gmail.com> * gstpriv.h (COUNT_OF): New macro. * dict.c (_gst_init_dictionary, _gst_init_dictionary_on_image_load): Use COUNT_OF. * sym.c (_gst_init_symbols_pass1): Ditto. --- libgst/ChangeLog | 7 +++++++ libgst/dict.c | 8 +++----- libgst/gstpriv.h | 5 +++++ libgst/sym.c | 6 +++--- 4 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/libgst/ChangeLog b/libgst/ChangeLog index 4d1375c..5298b12 100644 --- a/libgst/ChangeLog +++ b/libgst/ChangeLog @@ -1,5 +1,12 @@ 2017-04-26 Lee Duhem <lee.du...@gmail.com> + * gstpriv.h (COUNT_OF): New macro. + * dict.c (_gst_init_dictionary, _gst_init_dictionary_on_image_load): + Use COUNT_OF. + * sym.c (_gst_init_symbols_pass1): Ditto. + +2017-04-26 Lee Duhem <lee.du...@gmail.com> + * callin.c (_gst_type_name_to_oop): Replace sprintf with snprintf. (_gst_class_name_to_oop): Clean properly before return. * cint.c (_gst_invoke_croutine): Clean properly before return. diff --git a/libgst/dict.c b/libgst/dict.c index 6e11fc6..30845ce 100644 --- a/libgst/dict.c +++ b/libgst/dict.c @@ -828,13 +828,13 @@ _gst_init_dictionary (void) _gst_init_symbols_pass1 (); - create_classes_pass1 (class_info, sizeof (class_info) / sizeof (class_info[0])); + create_classes_pass1 (class_info, COUNT_OF (class_info)); init_proto_oops(); _gst_init_symbols_pass2 (); init_smalltalk_dictionary (); - create_classes_pass2 (class_info, sizeof (class_info) / sizeof (class_info[0])); + create_classes_pass2 (class_info, COUNT_OF (class_info)); init_runtime_objects (); _gst_tenure_all_survivors (); @@ -1308,9 +1308,7 @@ _gst_init_dictionary_on_image_load (mst_Boolean prim_table_matches) _gst_restore_symbols (); - for (ci = class_info; - ci < class_info + sizeof(class_info) / sizeof(class_definition); - ci++) + for (ci = class_info; ci < class_info + COUNT_OF (class_info); ci++) if (ci->reloadAddress) { *ci->classVar = dictionary_at (_gst_smalltalk_dictionary, diff --git a/libgst/gstpriv.h b/libgst/gstpriv.h index 85aa9a0..ed68ef2 100644 --- a/libgst/gstpriv.h +++ b/libgst/gstpriv.h @@ -553,6 +553,11 @@ extern OOP _gst_nil_oop #define MIN(x, y) ( ((x) > (y)) ? (y) : (x) ) #endif +#ifndef COUNT_OF +#define COUNT_OF(x) ((sizeof(x)/sizeof(0[x])) / \ + ((size_t)(!(sizeof(x) % sizeof(0[x]))))) +#endif + #include "ansidecl.h" #include "mathl.h" #include "socketx.h" diff --git a/libgst/sym.c b/libgst/sym.c index 57f62e7..cbd0d32 100644 --- a/libgst/sym.c +++ b/libgst/sym.c @@ -1568,7 +1568,7 @@ _gst_init_symbols_pass1 (void) to the hash table entries. */ for (bs = _gst_builtin_selectors_hash; bs - _gst_builtin_selectors_hash < - sizeof (_gst_builtin_selectors_hash) / sizeof (_gst_builtin_selectors_hash[0]); + COUNT_OF (_gst_builtin_selectors_hash); bs++) if (bs->offset != -1) { @@ -1594,7 +1594,7 @@ _gst_init_symbols_pass2 (void) to the hash table entries. */ for (bs = _gst_builtin_selectors_hash; bs - _gst_builtin_selectors_hash < - sizeof (_gst_builtin_selectors_hash) / sizeof (_gst_builtin_selectors_hash[0]); + COUNT_OF (_gst_builtin_selectors_hash); bs++) if (bs->offset != -1) { @@ -1633,7 +1633,7 @@ _gst_restore_symbols (void) to the hash table entries. */ for (bs = _gst_builtin_selectors_hash; bs - _gst_builtin_selectors_hash < - sizeof (_gst_builtin_selectors_hash) / sizeof (_gst_builtin_selectors_hash[0]); + COUNT_OF (_gst_builtin_selectors_hash); bs++) if (bs->offset != -1) { -- 2.9.3 _______________________________________________ help-smalltalk mailing list help-smalltalk@gnu.org https://lists.gnu.org/mailman/listinfo/help-smalltalk