]> Kevux Git Server - fll/commitdiff
Progress: Continue memory array related changes, replacing the f_memory_structure...
authorKevin Day <kevin@kevux.org>
Wed, 19 Jul 2023 04:11:32 +0000 (23:11 -0500)
committerKevin Day <kevin@kevux.org>
Wed, 19 Jul 2023 04:11:32 +0000 (23:11 -0500)
The f_memory_array set of functions now fully replaces the f_memory_structure functions and related macros.
I think those structure macros are nifty but they are not in use enough anymore and the f_memory_array structure is what I am going forward with.

There is still an enormouse amount of changes to do.

121 files changed:
build/disable/level_0/f_fss.h
build/disable/level_0/f_memory.h
build/level_0/settings
build/monolithic/settings
build/stand_alone/fake.config.h
build/stand_alone/fake.settings
level_0/f_directory/c/directory/private-type.c
level_0/f_directory/c/directory/private-type.h
level_0/f_directory/c/directory/type.c
level_0/f_directory/c/directory/type.h
level_0/f_fss/c/fss/item.c
level_0/f_fss/c/fss/item.h
level_0/f_fss/c/fss/named.c
level_0/f_fss/c/fss/named.h
level_0/f_fss/c/fss/nest.c
level_0/f_fss/c/fss/nest.h
level_0/f_fss/c/fss/private-item.c
level_0/f_fss/c/fss/private-item.h
level_0/f_fss/c/fss/private-named.c
level_0/f_fss/c/fss/private-named.h
level_0/f_fss/c/fss/private-nest.c
level_0/f_fss/c/fss/private-nest.h
level_0/f_fss/c/fss/private-set.c
level_0/f_fss/c/fss/private-set.h
level_0/f_fss/c/fss/private-set_quote.c
level_0/f_fss/c/fss/private-set_quote.h
level_0/f_fss/c/fss/private-simple_packet.c
level_0/f_fss/c/fss/private-simple_packet.h
level_0/f_fss/c/fss/set.c
level_0/f_fss/c/fss/set.h
level_0/f_fss/c/fss/set_quote.c
level_0/f_fss/c/fss/set_quote.h
level_0/f_fss/c/fss/simple_packet.h
level_0/f_iki/c/iki/common.h
level_0/f_iki/c/iki/data.c
level_0/f_iki/c/iki/private-data.c
level_0/f_limit/c/limit/set.h
level_0/f_limit/c/limit/value.h
level_0/f_memory/c/memory.h
level_0/f_memory/c/memory/array.c
level_0/f_memory/c/memory/common.h
level_0/f_memory/c/memory/structure.c [deleted file]
level_0/f_memory/c/memory/structure.h [deleted file]
level_0/f_memory/c/private-memory.c
level_0/f_memory/c/private-memory.h
level_0/f_memory/data/build/settings
level_0/f_memory/tests/unit/c/test-memory-array_increase.c
level_0/f_string/c/string/dynamics.c
level_0/f_string/c/string/dynamicss.c
level_0/f_string/c/string/map_multis.c
level_0/f_string/c/string/map_multis.h
level_0/f_string/c/string/map_multiss.c
level_0/f_string/c/string/map_multiss.h
level_0/f_string/c/string/maps.c
level_0/f_string/c/string/maps.h
level_0/f_string/c/string/mapss.c
level_0/f_string/c/string/mapss.h
level_0/f_string/c/string/private-dynamic.c
level_0/f_string/c/string/private-dynamics.c
level_0/f_string/c/string/private-dynamicss.c
level_0/f_string/c/string/quantitys.c
level_0/f_string/c/string/quantitys.h
level_0/f_string/c/string/quantityss.c
level_0/f_string/c/string/ranges.c
level_0/f_string/c/string/ranges.h
level_0/f_string/c/string/rangess.c
level_0/f_string/c/string/triples.c
level_0/f_string/c/string/triples.h
level_0/f_string/c/string/tripless.c
level_0/f_string/c/string/tripless.h
level_0/f_thread/c/thread/attribute.c
level_0/f_thread/c/thread/attribute.h
level_0/f_thread/c/thread/barrier.c
level_0/f_thread/c/thread/barrier.h
level_0/f_thread/c/thread/barrier_attribute.c
level_0/f_thread/c/thread/barrier_attribute.h
level_0/f_thread/c/thread/condition.c
level_0/f_thread/c/thread/condition.h
level_0/f_thread/c/thread/condition_attribute.c
level_0/f_thread/c/thread/condition_attribute.h
level_0/f_thread/c/thread/id.c
level_0/f_thread/c/thread/id.h
level_0/f_thread/c/thread/key.c
level_0/f_thread/c/thread/key.h
level_0/f_thread/c/thread/lock.c
level_0/f_thread/c/thread/lock.h
level_0/f_thread/c/thread/lock_attribute.c
level_0/f_thread/c/thread/lock_attribute.h
level_0/f_thread/c/thread/mutex.c
level_0/f_thread/c/thread/mutex.h
level_0/f_thread/c/thread/mutex_attribute.c
level_0/f_thread/c/thread/mutex_attribute.h
level_0/f_thread/c/thread/once.c
level_0/f_thread/c/thread/once.h
level_0/f_thread/c/thread/semaphore.c
level_0/f_thread/c/thread/semaphore.h
level_0/f_thread/c/thread/set.c
level_0/f_thread/c/thread/set.h
level_0/f_thread/c/thread/spin.c
level_0/f_thread/c/thread/spin.h
level_0/f_type_array/c/type_array/poll.c
level_0/f_utf/c/utf/dynamics.c
level_0/f_utf/c/utf/dynamicss.c
level_0/f_utf/c/utf/map_multis.c
level_0/f_utf/c/utf/map_multis.h
level_0/f_utf/c/utf/map_multiss.c
level_0/f_utf/c/utf/map_multiss.h
level_0/f_utf/c/utf/maps.c
level_0/f_utf/c/utf/maps.h
level_0/f_utf/c/utf/mapss.c
level_0/f_utf/c/utf/mapss.h
level_0/f_utf/c/utf/private-dynamic.c
level_0/f_utf/c/utf/triples.c
level_0/f_utf/c/utf/triples.h
level_0/f_utf/c/utf/tripless.c
level_0/f_utf/c/utf/tripless.h
level_3/controller/c/common/private-entry.c
level_3/controller/c/common/private-rule.c
level_3/controller/c/rule/private-rule.c
level_3/fss_read/c/main/common/type.c
level_3/fss_read/c/main/common/type.h

index d1c2f9756241ba1357af98c6755947b153f0ad50..56ca48f3fbc2baf38e3ec5ae9177995a5c5bdc00 100644 (file)
 #define _di_f_fss_simple_packet_d_
 #define _di_f_fss_simple_packet_identify_
 #define _di_f_fss_simple_packet_ranges_adjust_
+#define _di_f_fss_simple_packet_ranges_append_
+#define _di_f_fss_simple_packet_ranges_append_all_
 #define _di_f_fss_simple_packet_ranges_decimate_by_
 #define _di_f_fss_simple_packet_ranges_decrease_by_
 #define _di_f_fss_simple_packet_ranges_increase_
 #define _di_f_fss_simple_packet_ranges_increase_by_
 #define _di_f_fss_simple_packet_ranges_resize_
+#define _di_f_fss_simple_packet_rangess_adjust_
+#define _di_f_fss_simple_packet_rangess_append_
+#define _di_f_fss_simple_packet_rangess_append_all_
+#define _di_f_fss_simple_packet_rangess_decimate_by_
+#define _di_f_fss_simple_packet_rangess_decrease_by_
+#define _di_f_fss_simple_packet_rangess_increase_
+#define _di_f_fss_simple_packet_rangess_increase_by_
+#define _di_f_fss_simple_packet_rangess_resize_
+#define _di_f_fss_simple_packet_rangess_t_
 #define _di_f_fss_simple_packet_ranges_t_
 #define _di_f_fss_simple_packet_range_t_
 #define _di_f_fss_skip_past_delimit_
index 3543d6667fb7b051caf72447fdbb645d3bc69843..59df8a5b1b427b1d08a40c544baeb478ed70c362 100644 (file)
@@ -1,36 +1,13 @@
 #define _di_f_memory_adjust_
+#define _di_f_memory_array_adjust_
+#define _di_f_memory_array_decimate_by_
+#define _di_f_memory_array_decrease_by_
+#define _di_f_memory_array_increase_
+#define _di_f_memory_array_increase_by_
+#define _di_f_memory_array_resize_
 #define _di_f_memory_default_d_
 #define _di_f_memory_delete_
 #define _di_f_memory_destroy_
 #define _di_f_memory_new_
 #define _di_f_memory_new_aligned_
 #define _di_f_memory_resize_
-#define _di_f_memory_structure_adjust_
-#define _di_f_memory_structure_decimate_by_
-#define _di_f_memory_structure_decrease_by_
-#define _di_f_memory_structure_increase_
-#define _di_f_memory_structure_increase_by_
-#define _di_f_memory_structure_resize_
-#define _di_macro_f_memory_structure_adjust_
-#define _di_macro_f_memory_structure_clear_
-#define _di_macro_f_memory_structure_decimate_by_
-#define _di_macro_f_memory_structure_decrease_by_
-#define _di_macro_f_memory_structure_delete_
-#define _di_macro_f_memory_structure_delete_simple_
-#define _di_macro_f_memory_structure_destroy_
-#define _di_macro_f_memory_structure_destroy_simple_
-#define _di_macro_f_memory_structure_increase_
-#define _di_macro_f_memory_structure_increase_by_
-#define _di_macro_f_memory_structure_increment_
-#define _di_macro_f_memory_structure_resize_
-#define _di_macro_f_memory_structures_adjust_
-#define _di_macro_f_memory_structures_clear_
-#define _di_macro_f_memory_structures_decimate_by_
-#define _di_macro_f_memory_structures_decrease_by_
-#define _di_macro_f_memory_structures_delete_
-#define _di_macro_f_memory_structures_delete_simple_
-#define _di_macro_f_memory_structures_destroy_
-#define _di_macro_f_memory_structures_destroy_simple_
-#define _di_macro_f_memory_structures_increase_
-#define _di_macro_f_memory_structures_increase_by_
-#define _di_macro_f_memory_structures_resize_
index d6222c809379b21816f9fd7b674de2bd8ba133fd..520533cf8d5c62683b507795bd90ee57cf9a2482 100644 (file)
@@ -48,7 +48,7 @@ build_sources_library fss.c fss/common.c fss/item.c fss/named.c fss/nest.c fss/q
 build_sources_library fss/private-item.c fss/private-named.c fss/private-nest.c fss/private-set.c fss/private-set_quote.c fss/private-simple_packet.c
 build_sources_library iki.c iki/common.c iki/data.c private-iki.c iki/private-data.c
 build_sources_library limit.c limit/set.c limit/value.c limit/private-set.c limit/private-value.c
-build_sources_library memory.c memory/array.c memory/structure.c
+build_sources_library memory.c memory/array.c
 build_sources_library private-memory.c memory/private-array.c
 build_sources_library network.c
 build_sources_library parse.c parse/utf.c
@@ -107,7 +107,7 @@ build_sources_headers file.h file/common.h file/stream.h
 build_sources_headers fss.h fss/common.h fss/item.h fss/named.h fss/nest.h fss/quote.h fss/set.h fss/set_quote.h fss/simple_packet.h
 build_sources_headers iki.h iki/common.h iki/data.h
 build_sources_headers limit.h limit/set.h limit/value.h
-build_sources_headers memory.h memory/array.h memory/common.h memory/structure.h
+build_sources_headers memory.h memory/array.h memory/common.h
 build_sources_headers network.h network/common.h
 build_sources_headers parse.h parse/utf.h
 build_sources_headers path.h path/common.h
index e60f0d749e7eae59934d3ce9c66b005404b93ef9..fef20f62de9a07ffaf95e8c1c8cf86b37cd02c61 100644 (file)
@@ -48,7 +48,7 @@ build_sources_library level_0/fss.c level_0/fss/common.c level_0/fss/item.c leve
 build_sources_library level_0/fss/private-item.c level_0/fss/private-named.c level_0/fss/private-nest.c level_0/fss/private-set.c level_0/fss/private-set_quote.c level_0/fss/private-simple_packet.c
 build_sources_library level_0/iki.c level_0/iki/common.c level_0/iki/data.c level_0/private-iki.c level_0/iki/private-data.c
 build_sources_library level_0/limit.c level_0/limit/set.c level_0/limit/value.c level_0/limit/private-set.c level_0/limit/private-value.c
-build_sources_library level_0/memory.c level_0/memory/array.c level_0/memory/structure.c
+build_sources_library level_0/memory.c level_0/memory/array.c
 build_sources_library level_0/private-memory.c level_0/memory/private-array.c
 build_sources_library level_0/network.c
 build_sources_library level_0/parse.c level_0/parse/utf.c
@@ -129,7 +129,7 @@ build_sources_headers level_0/file.h level_0/file/common.h level_0/file/stream.h
 build_sources_headers level_0/fss.h level_0/fss/common.h level_0/fss/item.h level_0/fss/named.h level_0/fss/nest.h level_0/fss/quote.h level_0/fss/set.h level_0/fss/set_quote.h level_0/fss/simple_packet.h
 build_sources_headers level_0/iki.h level_0/iki/common.h level_0/iki/data.h
 build_sources_headers level_0/limit.h level_0/limit/set.h level_0/limit/value.h
-build_sources_headers level_0/memory.h level_0/memory/array.h level_0/memory/common.h level_0/memory/structure.h
+build_sources_headers level_0/memory.h level_0/memory/array.h level_0/memory/common.h
 build_sources_headers level_0/network.h level_0/network/common.h
 build_sources_headers level_0/parse.h level_0/parse/utf.h
 build_sources_headers level_0/path.h level_0/path/common.h
index 1e63de8fba737406092a1c32993104883cf52039..52bea4752b622a2dddbd5d0ed3203e6c3bb59864 100644 (file)
 //#define _di_f_file_name_directory_
 //#define _di_f_file_open_
 #define _di_f_file_open_at_
-//#define _di_f_file_open_mode_append_s_
 //#define _di_f_file_open_mode_read_append_s_
 //#define _di_f_file_open_mode_read_s_
 //#define _di_f_file_open_mode_read_truncate_s_
 //#define _di_f_file_open_mode_read_write_s_
 //#define _di_f_file_open_mode_s_
-//#define _di_f_file_open_mode_truncate_s_
+//#define _di_f_file_open_mode_write_append_s_
+//#define _di_f_file_open_mode_write_truncate_s_
 //#define _di_f_file_operation_access_s_
 //#define _di_f_file_operation_analyze_s_
 #define _di_f_file_operation_append_s_
 #define _di_f_memory_array_decrease_by_
 #define _di_f_memory_array_increase_
 #define _di_f_memory_array_increase_by_
-#define _di_f_memory_array_resize_
+//#define _di_f_memory_array_resize_
 //#define _di_f_memory_default_d_
 //#define _di_f_memory_delete_
 #define _di_f_memory_destroy_
 #define _di_f_memory_new_
 #define _di_f_memory_new_aligned_
 //#define _di_f_memory_resize_
-#define _di_f_memory_structure_adjust_
-#define _di_f_memory_structure_decimate_by_
-#define _di_f_memory_structure_decrease_by_
-#define _di_f_memory_structure_increase_
-#define _di_f_memory_structure_increase_by_
-#define _di_f_memory_structure_resize_
 
 //#define _di_f_mode_t_
 
 #define _di_f_socket_message_flag_e_
 #define _di_f_socket_name_host_
 #define _di_f_socket_name_peer_
-#define _di_f_socket_option_d_
+#define _di_f_socket_option_e_
 #define _di_f_socket_option_get_
 #define _di_f_socket_option_set_
 #define _di_f_socket_protocol_e_
 #define _di_f_socketss_t_
 #define _di_f_sockets_t_
 #define _di_f_socket_t_
-#define _di_f_socket_type_d_
+#define _di_f_socket_type_e_
 #define _di_f_socket_write_
 #define _di_f_socket_write_message_
 #define _di_f_socket_write_stream_
index 972b5a5e63d591c0f909ef8bb560547cf249b8bf..5aff6fea8fc89cc03010fd30c440300cc6f06401 100644 (file)
@@ -46,7 +46,8 @@ build_sources_program fll/level_0/fss.c fll/level_0/fss/common.c fll/level_0/fss
 build_sources_program fll/level_0/fss/private-item.c fll/level_0/fss/private-named.c fll/level_0/fss/private-nest.c fll/level_0/fss/private-set.c fll/level_0/fss/private-set_quote.c fll/level_0/fss/private-simple_packet.c
 build_sources_program fll/level_0/iki.c fll/level_0/private-iki.c fll/level_0/iki/common.c fll/level_0/iki/private-data.c fll/level_0/iki/data.c
 build_sources_program fll/level_0/limit.c fll/level_0/limit/set.c fll/level_0/limit/value.c fll/level_0/limit/private-set.c fll/level_0/limit/private-value.c
-build_sources_program fll/level_0/memory.c fll/level_0/private-memory.c fll/level_0/memory/structure.c
+build_sources_program fll/level_0/memory.c fll/level_0/memory/array.c
+build_sources_program fll/level_0/private-memory.c fll/level_0/memory/private-array.c
 build_sources_program fll/level_0/parse.c fll/level_0/parse/utf.c
 build_sources_program fll/level_0/path.c fll/level_0/private-path.c fll/level_0/path/common.c
 build_sources_program fll/level_0/pipe.c
index c46c6d9e688dbc3139d2ba674110ce741940a2b9..890c911da161d7b16d13796708cf8798da1334a2 100644 (file)
@@ -8,53 +8,36 @@ extern "C" {
 #if !defined(_di_f_directory_statuss_adjust_) || !defined(_di_f_directory_statuss_decimate_by_)
   f_status_t private_f_directory_statuss_adjust(const f_number_unsigned_t length, f_directory_statuss_t * const statuss) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < statuss->size; ++i) {
+      for (f_number_unsigned_t i = length; i < statuss->size; ++i) {
 
-      status = f_string_dynamic_adjust(0, &statuss->array[i].path);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_adjust(statuss->size, length, sizeof(f_directory_status_t), (void **) & statuss->array);
-
-    if (F_status_is_error_not(status)) {
-      statuss->size = length;
-
-      if (statuss->used > statuss->size) {
-        statuss->used = length;
-      }
+        status = f_string_dynamic_adjust(0, &statuss->array[i].path);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    if (F_status_is_error(status)) return status;
-
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_directory_status_t), (void **) &statuss->array, &statuss->used, &statuss->size);
   }
 #endif // !defined(_di_f_directory_statuss_adjust_) || !defined(_di_f_directory_statuss_decimate_by_)
 
-#if !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_increase_) || !defined(_di_f_directory_statuss_increase_by_) || !defined(_di_f_directory_statuss_resize_)
+#if !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_resize_)
   f_status_t private_f_directory_statuss_resize(const f_number_unsigned_t length, f_directory_statuss_t * const statuss) {
 
-    f_status_t status = F_none;
-
-    for (f_number_unsigned_t i = length; i < statuss->size; ++i) {
-
-      status = f_string_dynamic_resize(0, &statuss->array[i].path);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_resize(statuss->size, length, sizeof(f_directory_status_t), (void **) & statuss->array);
-    if (F_status_is_error(status)) return status;
+    {
+      f_status_t status = F_none;
 
-    statuss->size = length;
+      for (f_number_unsigned_t i = length; i < statuss->size; ++i) {
 
-    if (statuss->used > statuss->size) {
-      statuss->used = length;
+        status = f_string_dynamic_resize(0, &statuss->array[i].path);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_directory_status_t), (void **) &statuss->array, &statuss->used, &statuss->size);
   }
-#endif // !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_increase_) || !defined(_di_f_directory_statuss_increase_by_) || !defined(_di_f_directory_statuss_resize_)
+#endif // !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index 613147871b7ec1e589cf618c2cedcb31eef6fc6a..251c3794bb078d67b4398b4d1d0240726a0894a5 100644 (file)
@@ -26,16 +26,18 @@ extern "C" {
  *   The statuss to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   Errors (with error bit) from: f_memory_adjust().
- *   Errors (with error bit) from: private_f_directory_status_adjust().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- * @see private_f_directory_status_adjust()
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
+ *
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
  *
  * @see f_directory_statuss_adjust()
  * @see f_directory_statuss_decimate_by()
- * @see f_memory_adjust()
  */
 #if !defined(_di_f_directory_statuss_adjust_) || !defined(_di_f_directory_statuss_decimate_by_)
   extern f_status_t private_f_directory_statuss_adjust(const f_number_unsigned_t length, f_directory_statuss_t * const statuss) F_attribute_visibility_internal_d;
@@ -52,21 +54,22 @@ extern "C" {
  *   The statuss to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
+ *   Errors (with error bit) from: f_memory_array_resize().
  *   Errors (with error bit) from: f_string_dynamic_resize().
  *
+ * @see f_memory_array_resize()
  * @see f_string_dynamic_resize()
  *
- * @see f_directory_statuss_decrease_by()
- * @see f_directory_statuss_increase()
- * @see f_directory_statuss_increase_by()
  * @see f_directory_statuss_resize()
- * @see f_memory_resize()
+ * @see f_directory_statuss_decimate_by()
  */
-#if !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_increase_) || !defined(_di_f_directory_statuss_increase_by_) || !defined(_di_f_directory_statuss_resize_)
+#if !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_resize_)
   extern f_status_t private_f_directory_statuss_resize(const f_number_unsigned_t length, f_directory_statuss_t * const statuss) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_increase_) || !defined(_di_f_directory_statuss_increase_by_) || !defined(_di_f_directory_statuss_resize_)
+#endif // !defined(_di_f_directory_statuss_decrease_by_) || !defined(_di_f_directory_statuss_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index ead2c3e8d16b9d4bcb0bd496d9ea3a921b5ba923..f3c7e68d1416adbcb409a528f859abcc08fd259a 100644 (file)
@@ -91,11 +91,7 @@ extern "C" {
 
     if (!amount) return F_data_not;
 
-    if (statuss->size - amount > 0) {
-      return private_f_directory_statuss_adjust(statuss->size - amount, statuss);
-    }
-
-    return private_f_directory_statuss_adjust(0, statuss);
+    return private_f_directory_statuss_adjust((statuss->size - amount > 0) ? statuss->size - amount : 0, statuss);
   }
 #endif // _di_f_directory_statuss_decimate_by_
 
@@ -107,11 +103,7 @@ extern "C" {
 
     if (!amount) return F_data_not;
 
-    if (statuss->size - amount > 0) {
-      return private_f_directory_statuss_resize(statuss->size - amount, statuss);
-    }
-
-    return private_f_directory_statuss_resize(0, statuss);
+    return private_f_directory_statuss_resize((statuss->size - amount > 0) ? statuss->size - amount : 0, statuss);
   }
 #endif // _di_f_directory_statuss_decrease_by_
 
@@ -121,19 +113,7 @@ extern "C" {
       if (!statuss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (step && statuss->used + 1 > statuss->size) {
-      f_number_unsigned_t size = statuss->used + step;
-
-      if (size > F_number_t_size_unsigned_d) {
-        if (statuss->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-        size = F_number_t_size_unsigned_d;
-      }
-
-      return private_f_directory_statuss_resize(size, statuss);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase(step, sizeof(f_directory_status_t), (void **) &statuss->array, &statuss->used, &statuss->size);
   }
 #endif // _di_f_directory_statuss_increase_
 
@@ -143,15 +123,7 @@ extern "C" {
       if (!statuss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
-
-    if (statuss->used + amount > statuss->size) {
-      if (statuss->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-      return private_f_directory_statuss_resize(statuss->used + amount, statuss);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase_by(amount, sizeof(f_directory_status_t), (void **) &statuss->array, &statuss->used, &statuss->size);
   }
 #endif // _di_f_directory_statuss_increase_by_
 
index 4620e5ad0af0d3e832d295ee2525ebe65ad09f2c..bab9b52563e1b918aa25aea4d37c11566f0c7366 100644 (file)
@@ -304,13 +304,15 @@ extern "C" {
  *   The statuss structure to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: f_string_dynamic_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   @see f_memory_resize()
- *   @see f_string_dynamic_resize()
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
+ *
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
  */
 #ifndef _di_f_directory_statuss_adjust_
   extern f_status_t f_directory_statuss_adjust(const f_number_unsigned_t length, f_directory_statuss_t * const statuss);
@@ -329,14 +331,15 @@ extern "C" {
  *   The statuss array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not if amount is 0.
+ *   Success from f_memory_array_adjust().
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: f_string_dynamic_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
  *
- *   @see f_memory_resize()
- *   @see f_string_dynamic_resize()
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
  */
 #ifndef _di_f_directory_statuss_decimate_by_
   extern f_status_t f_directory_statuss_decimate_by(const f_number_unsigned_t amount, f_directory_statuss_t * const statuss);
@@ -355,14 +358,15 @@ extern "C" {
  *   The statuss array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not if amount is 0.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
  *   Errors (with error bit) from: f_string_dynamic_resize().
  *
- *   @see f_memory_resize()
- *   @see f_string_dynamic_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_dynamic_resize()
  */
 #ifndef _di_f_directory_statuss_decrease_by_
   extern f_status_t f_directory_statuss_decrease_by(const f_number_unsigned_t amount, f_directory_statuss_t * const statuss);
@@ -381,14 +385,13 @@ extern "C" {
  *   The statuss array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
+ *   Success from f_memory_array_increase().
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: f_string_dynamic_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
  *
- *   @see f_memory_resize()
- *   @see f_string_dynamic_resize()
+ * @see f_memory_array_increase()
  */
 #ifndef _di_f_directory_statuss_increase_
   extern f_status_t f_directory_statuss_increase(const f_number_unsigned_t step, f_directory_statuss_t * const statuss);
@@ -407,14 +410,13 @@ extern "C" {
  *   The statuss array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + amount <= size).
+ *   Success from f_memory_array_increase_by().
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: f_string_dynamic_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   @see f_memory_resize()
- *   @see f_string_dynamic_resize()
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase_by()
  */
 #ifndef _di_f_directory_statuss_increase_by_
   extern f_status_t f_directory_statuss_increase_by(const f_number_unsigned_t amount, f_directory_statuss_t * const statuss);
@@ -429,13 +431,15 @@ extern "C" {
  *   The directory status array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   Errors (with error bit) from: f_memory_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
  *   Errors (with error bit) from: f_string_dynamic_resize().
  *
- *   @see f_memory_resize()
- *   @see f_string_dynamic_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_dynamic_resize()
  */
 #ifndef _di_f_directory_statuss_resize_
   extern f_status_t f_directory_statuss_resize(const f_number_unsigned_t length, f_directory_statuss_t * const statuss);
index ef6325c74103b95df4b777d841efa4ecb518ba2e..9d2e877351eea1667db335d7b43d4da1e689fdd6 100644 (file)
@@ -22,9 +22,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (items->size > amount) return private_f_fss_items_adjust(items->size - amount, items);
 
-    return private_f_fss_items_adjust(0, items);
+    return private_f_fss_items_adjust((items->size > amount) ? items->size - amount : 0, items);
   }
 #endif // _di_f_fss_items_decimate_by_
 
@@ -35,9 +34,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (items->size > amount) return private_f_fss_items_resize(items->size - amount, items);
 
-    return private_f_fss_items_resize(0, items);
+    return private_f_fss_items_resize((items->size > amount) ? items->size - amount : 0, items);
   }
 #endif // _di_f_fss_items_decrease_by_
 
@@ -47,19 +45,7 @@ extern "C" {
       if (!items) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (step && items->used + 1 > items->size) {
-      f_number_unsigned_t size = items->used + step;
-
-      if (size > F_number_t_size_unsigned_d) {
-        if (items->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-        size = F_number_t_size_unsigned_d;
-      }
-
-      return private_f_fss_items_resize(size, items);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase(step, sizeof(f_fss_item_t), (void **) &items->array, &items->used, &items->size);
   }
 #endif // _di_f_fss_items_increase_
 
@@ -69,15 +55,7 @@ extern "C" {
       if (!items) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
-
-    if (items->used + amount > items->size) {
-      if (items->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-      return private_f_fss_items_resize(items->used + amount, items);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase_by(amount, sizeof(f_fss_item_t), (void **) &items->array, &items->used, &items->size);
   }
 #endif // _di_f_fss_items_increase_by_
 
index 9f4b58c116565b77c86c7ac0f2f09d370c04f6fa..d8ed2681845500b81b367588b4360995cff0791d 100644 (file)
@@ -103,8 +103,6 @@ extern "C" {
   #define macro_f_fss_items_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_fss_items_t_initialize_2(array, length)     { array, length, length }
 
-  #define macro_f_fss_items_t_clear(items) macro_f_memory_structure_clear(items)
-
   #define macro_f_fss_items_t_resize(status, items, length) status = f_fss_items_resize(length, &items);
   #define macro_f_fss_items_t_adjust(status, items, length) status = f_fss_items_adjust(length, &items);
 
@@ -171,10 +169,15 @@ extern "C" {
  *   The items array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
+ *
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
  */
 #ifndef _di_f_fss_items_decrease_by_
   extern f_status_t f_fss_items_decrease_by(const f_number_unsigned_t amount, f_fss_items_t * const items);
@@ -193,12 +196,13 @@ extern "C" {
  *   The items array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
+ *   Success from f_memory_array_increase().
  *
- *   F_array_too_large (with error bit) if the new array length is too large.
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *
+ * @see f_memory_array_increase()
  */
 #ifndef _di_f_fss_items_increase_
   extern f_status_t f_fss_items_increase(const f_number_unsigned_t step, f_fss_items_t * const items);
@@ -217,12 +221,13 @@ extern "C" {
  *   The items array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + amount <= size).
+ *   Success from f_memory_array_increase_by().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
- *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase_by()
  */
 #ifndef _di_f_fss_items_increase_by_
   extern f_status_t f_fss_items_increase_by(const f_number_unsigned_t amount, f_fss_items_t * const items);
@@ -234,13 +239,18 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param items
- *   The items array to adjust.
+ *   The items array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_dynamic_resize().
+ *
+ * @see f_memory_array_resize()
+ * @see f_string_dynamic_resize()
  */
 #ifndef _di_f_fss_items_resize_
   extern f_status_t f_fss_items_resize(const f_number_unsigned_t length, f_fss_items_t * const items);
index 86f81a354e1031498f52cfd3dab9abe62b3e0c0e..c41d11576365a80bbea584276b71f09f0fc1a595 100644 (file)
@@ -22,9 +22,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (named->objects.size - amount > 0) return private_f_fss_named_adjust(named->objects.size - amount, named);
 
-    return private_f_fss_named_adjust(0, named);
+    return private_f_fss_named_adjust((named->objects.size - amount > 0) ? named->objects.size - amount : 0, named);
   }
 #endif // _di_f_fss_named_decimate_by_
 
@@ -35,9 +34,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (named->objects.size - amount > 0) return private_f_fss_named_resize(named->objects.size - amount, named);
 
-    return private_f_fss_named_resize(0, named);
+    return private_f_fss_named_resize((named->objects.size - amount > 0) ? named->objects.size - amount : 0, named);
   }
 #endif // _di_f_fss_named_decrease_by_
 
@@ -48,6 +46,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && named->objects.used + 1 > named->objects.size) {
+      if (named->objects.used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = named->objects.used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -69,12 +69,16 @@ extern "C" {
       if (!named) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (named->objects.used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+      const f_number_unsigned_t length = named->objects.used + amount;
 
-    if (named->objects.used + amount > named->objects.size) {
-      if (named->objects.used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      if (length > named->objects.size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      return private_f_fss_named_resize(named->objects.used + amount, named);
+        return private_f_fss_named_resize(length, named);
+      }
     }
 
     return F_data_not;
@@ -108,9 +112,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (nameds->size > amount) return private_f_fss_nameds_adjust(nameds->size - amount, nameds);
 
-    return private_f_fss_nameds_adjust(0, nameds);
+    return private_f_fss_nameds_adjust((nameds->size > amount) ? nameds->size - amount : 0, nameds);
   }
 #endif // _di_f_fss_nameds_decimate_by_
 
@@ -121,9 +124,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (nameds->size > amount) return private_f_fss_nameds_resize(nameds->size - amount, nameds);
 
-    return private_f_fss_nameds_resize(0, nameds);
+    return private_f_fss_nameds_resize((nameds->size > amount) ? nameds->size - amount : 0, nameds);
   }
 #endif // _di_f_fss_nameds_decrease_by_
 
@@ -133,19 +135,7 @@ extern "C" {
       if (!nameds) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (step && nameds->used + 1 > nameds->size) {
-      f_number_unsigned_t size = nameds->used + step;
-
-      if (size > F_number_t_size_unsigned_d) {
-        if (nameds->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-        size = F_number_t_size_unsigned_d;
-      }
-
-      return private_f_fss_nameds_resize(size, nameds);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase(step, sizeof(f_fss_named_t), (void **) &nameds->array, &nameds->used, &nameds->size);
   }
 #endif // _di_f_fss_nameds_increase_
 
@@ -155,15 +145,7 @@ extern "C" {
       if (!nameds) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
-
-    if (nameds->used + amount > nameds->size) {
-      if (nameds->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-      return private_f_fss_nameds_resize(nameds->used + amount, nameds);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase_by(amount, sizeof(f_fss_named_t), (void **) &nameds->array, &nameds->used, &nameds->size);
   }
 #endif // _di_f_fss_nameds_increase_by_
 
index fbd9da62f1835f4477e119bbd766837683c1ce88..248c9a6df75588f662d92c39e9b6e6a28c18b7ed 100644 (file)
@@ -80,8 +80,6 @@ extern "C" {
   #define macro_f_fss_nameds_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_fss_nameds_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_fss_nameds_t_clear(nameds) macro_f_memory_structure_clear(nameds);
-
   #define macro_f_fss_nameds_t_resize(status, nameds, length) status = f_fss_nameds_resize(length, &nameds);
   #define macro_f_fss_nameds_t_adjust(status, nameds, length) status = f_fss_nameds_adjust(length, &nameds);
 
@@ -225,18 +223,27 @@ extern "C" {
 #endif // _di_f_fss_named_resize_
 
 /**
- * Resize the named array.
+ * Adjust the named array.
  *
  * @param length
  *   The new size to use.
  * @param nameds
- *   The nameds array to resize.
+ *   The nameds array to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_memory_array_resize()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_nameds_adjust_
   extern f_status_t f_fss_nameds_adjust(const f_number_unsigned_t length, f_fss_nameds_t * const nameds);
@@ -299,12 +306,13 @@ extern "C" {
  *   The nameds array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
+ *   Success from f_memory_array_increase().
  *
- *   F_array_too_large (with error bit) if the new array length is too large.
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *
+ * @see f_memory_array_increase()
  */
 #ifndef _di_f_fss_nameds_increase_
   extern f_status_t f_fss_nameds_increase(const f_number_unsigned_t step, f_fss_nameds_t * const nameds);
@@ -323,12 +331,13 @@ extern "C" {
  *   The nameds array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + amount <= size).
+ *   Success from f_memory_array_increase_by().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
- *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase_by()
  */
 #ifndef _di_f_fss_nameds_increase_by_
   extern f_status_t f_fss_nameds_increase_by(const f_number_unsigned_t amount, f_fss_nameds_t * const nameds);
@@ -340,13 +349,22 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param nameds
- *   The nameds array to adjust.
+ *   The nameds array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_memory_array_resize()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_nameds_resize_
   extern f_status_t f_fss_nameds_resize(const f_number_unsigned_t length, f_fss_nameds_t * const nameds);
index 973e122f178a385856a1d97e37d627bcf73961ce..94f20858f104f89abd770e112e60128222083f3e 100644 (file)
@@ -23,9 +23,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (nest->size > amount) return private_f_fss_nest_adjust(nest->size - amount, nest);
 
-    return private_f_fss_nest_adjust(0, nest);
+    return private_f_fss_nest_adjust((nest->size > amount) ? nest->size - amount : 0, nest);
   }
 #endif // _di_f_fss_nest_decimate_by_
 
@@ -36,9 +35,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (nest->size > amount) return private_f_fss_nest_resize(nest->size - amount, nest);
 
-    return private_f_fss_nest_resize(0, nest);
+    return private_f_fss_nest_resize((nest->size > amount) ? nest->size - amount : 0, nest);
   }
 #endif // _di_f_fss_nest_decrease_by_
 
@@ -49,6 +47,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && nest->used + 1 > nest->size) {
+      if (nest->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = nest->used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -70,12 +70,16 @@ extern "C" {
       if (!nest) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (nest->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (nest->used + amount > nest->size) {
-      if (nest->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      const f_number_unsigned_t length = nest->used + amount;
 
-      return private_f_fss_nest_resize(nest->used + amount, nest);
+      if (length > nest->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_fss_nest_resize(length, nest);
+      }
     }
 
     return F_data_not;
@@ -135,6 +139,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && nests->used + 1 > nests->size) {
+      if (nests->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = nests->used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -156,12 +162,16 @@ extern "C" {
       if (!nests) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (nests->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (nests->used + amount > nests->size) {
-      if (nests->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      const f_number_unsigned_t length = nests->used + amount;
 
-      return private_f_fss_nests_resize(nests->used + amount, nests);
+      if (length > nests->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_fss_nests_resize(length, nests);
+      }
     }
 
     return F_data_not;
index 497fd8ff06bb95ed8cb60d7dac36b5c75dc8a2c7..42ba73a9a74fbca75318678741c4c0a3d2b7d9a6 100644 (file)
@@ -225,13 +225,16 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param nests
- *   The nests array to resize.
+ *   The nests array to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *
+ * @see f_memory_array_adjust()
  */
 #ifndef _di_f_fss_nests_adjust_
   extern f_status_t f_fss_nests_adjust(const f_number_unsigned_t length, f_fss_nests_t * const nests);
@@ -250,10 +253,13 @@ extern "C" {
  *   The nests array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *
+ * @see f_memory_array_adjust()
  */
 #ifndef _di_f_fss_nests_decimate_by_
   extern f_status_t f_fss_nests_decimate_by(const f_number_unsigned_t amount, f_fss_nests_t * const nests);
@@ -272,10 +278,13 @@ extern "C" {
  *   The nests array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_nests_decrease_by_
   extern f_status_t f_fss_nests_decrease_by(const f_number_unsigned_t amount, f_fss_nests_t * const nests);
@@ -294,12 +303,13 @@ extern "C" {
  *   The nests array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
+ *   Success from f_memory_array_increase().
  *
- *   F_array_too_large (with error bit) if the new array length is too large.
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *
+ * @see f_memory_array_increase()
  */
 #ifndef _di_f_fss_nests_increase_
   extern f_status_t f_fss_nests_increase(const f_number_unsigned_t step, f_fss_nests_t * const nests);
@@ -318,12 +328,13 @@ extern "C" {
  *   The nests array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + amount <= size).
+ *   Success from f_memory_array_increase_by().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
- *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase_by()
  */
 #ifndef _di_f_fss_nests_increase_by_
   extern f_status_t f_fss_nests_increase_by(const f_number_unsigned_t amount, f_fss_nests_t * const nests);
@@ -335,13 +346,16 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param nests
- *   The nests array to adjust.
+ *   The nests array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_nests_resize_
   extern f_status_t f_fss_nests_resize(const f_number_unsigned_t length, f_fss_nests_t * const nests);
index 39c8e3971da22f8e9bdd413d36e67ec764629cd3..ab78342963be598803e8e6ce0df22804e16ff0e3 100644 (file)
@@ -16,16 +16,7 @@ extern "C" {
       if (F_status_is_error(status)) return status;
     } // for
 
-    status = f_memory_adjust(items->size, length, sizeof(f_fss_item_t), (void **) & items->array);
-    if (F_status_is_error(status)) return status;
-
-    items->size = length;
-
-    if (items->used > items->size) {
-      items->used = length;
-    }
-
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_fss_item_t), (void **) &items->array, &items->used, &items->size);
   }
 #endif // !defined(_di_f_fss_items_adjust_) || !defined(_di_f_fss_items_decimate_by_)
 
@@ -40,16 +31,7 @@ extern "C" {
       if (F_status_is_error(status)) return status;
     } // for
 
-    status = f_memory_resize(items->size, length, sizeof(f_fss_item_t), (void **) & items->array);
-    if (F_status_is_error(status)) return status;
-
-    items->size = length;
-
-    if (items->used > items->size) {
-      items->used = length;
-    }
-
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_fss_item_t), (void **) &items->array, &items->used, &items->size);
   }
 #endif // !defined(_di_f_fss_items_decrease_by_) || !defined(_di_f_fss_items_increase_) || !defined(_di_f_fss_items_increase_by_) || !defined(_di_f_fss_items_resize_)
 
index 1e6b7cfbc6dd232e623adb3b3f8d93fbdb086ef2..2435605a7374611fe399af447d8d461677e01a49 100644 (file)
@@ -26,16 +26,15 @@ extern "C" {
  *   The items to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   Errors (with error bit) from: macro_f_fss_item_t_adjust().
- *   Errors (with error bit) from: f_memory_adjust().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- * @see macro_f_fss_item_t_adjust()
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
  *
- * @see f_fss_items_adjust()
- * @see f_fss_items_decimate_by()
- * @see f_memory_adjust()
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
  */
 #if !defined(_di_f_fss_items_adjust_) || !defined(_di_f_fss_items_decimate_by_)
   extern f_status_t private_f_fss_items_adjust(const f_number_unsigned_t length, f_fss_items_t * const items) F_attribute_visibility_internal_d;
@@ -52,22 +51,19 @@ extern "C" {
  *   The items to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   Errors (with error bit) from: macro_f_fss_item_t_resize().
- *   Errors (with error bit) from: f_memory_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- * @see macro_f_fss_item_t_resize()
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_dynamic_resize().
  *
- * @see f_fss_items_decrease_by()
- * @see f_fss_items_increase()
- * @see f_fss_items_increase_by()
- * @see f_fss_items_resize()
- * @see f_memory_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_dynamic_resize()
  */
-#if !defined(_di_f_fss_items_decrease_by_) || !defined(_di_f_fss_items_increase_) || !defined(_di_f_fss_items_increase_by_) || !defined(_di_f_fss_items_resize_)
+#if !defined(_di_f_fss_items_decrease_by_) || !defined(_di_f_fss_items_resize_)
   extern f_status_t private_f_fss_items_resize(const f_number_unsigned_t length, f_fss_items_t * const items) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_items_decrease_by_) || !defined(_di_f_fss_items_increase_) || !defined(_di_f_fss_items_increase_by_) || !defined(_di_f_fss_items_resize_)
+#endif // !defined(_di_f_fss_items_decrease_by_) || !defined(_di_f_fss_items_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index 1c3dddb89ed6dd368cb59adfd102b8a470990f04..bfa04a32b3e07e3744d040f2626bbd76735cca00 100644 (file)
@@ -21,7 +21,7 @@ extern "C" {
   }
 #endif // !defined(_di_f_fss_nameds_adjust_) || !defined(_di_f_fss_nameds_decimate_by_)
 
-#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
   f_status_t private_f_fss_named_resize(const f_number_unsigned_t length, f_fss_named_t * const named) {
 
     f_status_t status = f_string_ranges_resize(length, &named->objects);
@@ -35,55 +35,41 @@ extern "C" {
 
     return F_none;
   }
-#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
 
 #if !defined(_di_f_fss_nameds_adjust_) || !defined(_di_f_fss_nameds_decimate_by_)
   f_status_t private_f_fss_nameds_adjust(const f_number_unsigned_t length, f_fss_nameds_t * const nameds) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < nameds->size; ++i) {
+      for (f_number_unsigned_t i = length; i < nameds->size; ++i) {
 
-      status = private_f_fss_named_adjust(0, &nameds->array[i]);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_adjust(nameds->size, length, sizeof(f_fss_named_t), (void **) & nameds->array);
-    if (F_status_is_error(status)) return status;
-
-    nameds->size = length;
-
-    if (nameds->used > nameds->size) {
-      nameds->used = length;
+        status = private_f_fss_named_adjust(0, &nameds->array[i]);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_fss_named_t), (void **) &nameds->array, &nameds->used, &nameds->size);
   }
 #endif // !defined(_di_f_fss_nameds_adjust_) || !defined(_di_f_fss_nameds_decimate_by_)
 
-#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
   f_status_t private_f_fss_nameds_resize(const f_number_unsigned_t length, f_fss_nameds_t * const nameds) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < nameds->size; ++i) {
+      for (f_number_unsigned_t i = length; i < nameds->size; ++i) {
 
-      status = private_f_fss_named_resize(0, &nameds->array[i]);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_resize(nameds->size, length, sizeof(f_fss_named_t), (void **) & nameds->array);
-    if (F_status_is_error(status)) return status;
-
-    nameds->size = length;
-
-    if (nameds->used > nameds->size) {
-      nameds->used = length;
+        status = private_f_fss_named_resize(0, &nameds->array[i]);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_fss_named_t), (void **) &nameds->array, &nameds->used, &nameds->size);
   }
-#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index aab003f45f0763d012cb115e0425fa38b9524966..6d1f48c5788de3411785d5174b83afbb0cc36abd 100644 (file)
@@ -56,22 +56,20 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- *   Errors (with error bit) from: macro_f_string_ranges_t_resize().
- *   Errors (with error bit) from: macro_f_string_rangess_t_resize().
- *   Errors (with error bit) from: macro_f_uint8ss_t_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
  *
- * @see macro_f_string_ranges_t_resize()
- * @see macro_f_string_rangess_t_resize()
- * @see macro_f_uint8ss_t_resize()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8ss_resize()
  *
  * @see f_fss_nameds_decrease_by()
- * @see f_fss_nameds_incease()
- * @see f_fss_nameds_incease_by()
  * @see f_fss_nameds_resize()
  */
-#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
   extern f_status_t private_f_fss_named_resize(const f_number_unsigned_t length, f_fss_named_t * const named) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
 
 /**
  * Private implementation for resizing.
@@ -84,16 +82,22 @@ extern "C" {
  *   The nameds to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_adjust().
- *   Errors (with error bit) from: private_f_fss_named_adjust().
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
  *
- * @see private_f_fss_named_adjust()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8ss_resize()
+ * @see f_memory_array_adjust()
  *
  * @see f_fss_nameds_adjust()
  * @see f_fss_nameds_decimate_by()
- * @see f_memory_adjust()
  */
 #if !defined(_di_f_fss_nameds_adjust_) || !defined(_di_f_fss_nameds_decimate_by_)
   extern f_status_t private_f_fss_nameds_adjust(const f_number_unsigned_t length, f_fss_nameds_t * const nameds) F_attribute_visibility_internal_d;
@@ -110,22 +114,26 @@ extern "C" {
  *   The nameds to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: private_f_fss_named_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
  *
- * @see private_f_fss_named_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8ss_resize()
  *
  * @see f_fss_nameds_decrease_by()
- * @see f_fss_nameds_increase()
- * @see f_fss_nameds_increase_by()
  * @see f_fss_nameds_resize()
- * @see f_memory_resize()
  */
-#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#if !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
   extern f_status_t private_f_fss_nameds_resize(const f_number_unsigned_t length, f_fss_nameds_t * const nameds) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_increase_) || !defined(_di_f_fss_nameds_increase_by_) || !defined(_di_f_fss_nameds_resize_)
+#endif // !defined(_di_f_fss_nameds_decrease_by_) || !defined(_di_f_fss_nameds_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index ce719a1882abd257f1e067eaee95ac5b01d25426..bf50fc99e7e5367dd261cd508182b7933e70d200 100644 (file)
@@ -9,98 +9,70 @@ extern "C" {
 #if !defined(_di_f_fss_nest_adjust_) || !defined(_di_f_fss_nest_decimate_by_)
   f_status_t private_f_fss_nest_adjust(const f_number_unsigned_t length, f_fss_nest_t * const nest) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < nest->size; ++i) {
+      for (f_number_unsigned_t i = length; i < nest->size; ++i) {
 
-      status = private_f_fss_items_adjust(0, &nest->depth[i]);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_adjust(nest->size, length, sizeof(f_fss_items_t), (void **) & nest->depth);
-    if (F_status_is_error(status)) return status;
-
-    nest->size = length;
-
-    if (nest->used > nest->size) {
-      nest->used = length;
+        status = private_f_fss_items_adjust(0, &nest->depth[i]);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_fss_items_t), (void **) &nest->depth, &nest->used, &nest->size);
   }
 #endif // !defined(_di_f_fss_nest_adjust_) || !defined(_di_f_fss_nest_decimate_by_)
 
-#if !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_increase_) || !defined(_di_f_fss_nest_increase_by_) || !defined(_di_f_fss_nest_resize_)
+#if !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_resize_)
   f_status_t private_f_fss_nest_resize(const f_number_unsigned_t length, f_fss_nest_t * const nest) {
 
-    f_status_t status = F_none;
-
-    for (f_number_unsigned_t i = length; i < nest->size; ++i) {
-
-      status = private_f_fss_items_resize(0, &nest->depth[i]);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_resize(nest->size, length, sizeof(f_fss_items_t), (void **) & nest->depth);
-    if (F_status_is_error(status)) return status;
+    {
+      f_status_t status = F_none;
 
-    nest->size = length;
+      for (f_number_unsigned_t i = length; i < nest->size; ++i) {
 
-    if (nest->used > nest->size) {
-      nest->used = length;
+        status = private_f_fss_items_resize(0, &nest->depth[i]);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_fss_items_t), (void **) &nest->depth, &nest->used, &nest->size);
   }
-#endif // !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_increase_) || !defined(_di_f_fss_nest_increase_by_) || !defined(_di_f_fss_nest_resize_)
+#endif // !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_resize_)
 
 #if !defined(_di_f_fss_nests_adjust_) || !defined(_di_f_fss_nests_decimate_by_)
   f_status_t private_f_fss_nests_adjust(const f_number_unsigned_t length, f_fss_nests_t *nests) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < nests->size; ++i) {
+      for (f_number_unsigned_t i = length; i < nests->size; ++i) {
 
-      status = private_f_fss_nest_adjust(0, &nests->array[i]);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_adjust(nests->size, length, sizeof(f_fss_nest_t), (void **) & nests->array);
-    if (F_status_is_error(status)) return status;
-
-    nests->size = length;
-
-    if (nests->used > nests->size) {
-      nests->used = length;
+        status = private_f_fss_nest_adjust(0, &nests->array[i]);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_fss_nest_t), (void **) &nests->array, &nests->used, &nests->size);
   }
 #endif // !defined(_di_f_fss_nests_adjust_) || !defined(_di_f_fss_nests_decimate_by_)
 
-#if !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_increase_) || !defined(_di_f_fss_nests_increase_by_) || !defined(_di_f_fss_nests_resize_)
+#if !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_resize_)
   f_status_t private_f_fss_nests_resize(const f_number_unsigned_t length, f_fss_nests_t * const nests) {
 
-    f_status_t status = F_none;
-
-    for (f_number_unsigned_t i = length; i < nests->size; ++i) {
-
-      status = private_f_fss_nest_resize(0, &nests->array[i]);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_resize(nests->size, length, sizeof(f_fss_nest_t), (void **) & nests->array);
-    if (F_status_is_error(status)) return status;
+    {
+      f_status_t status = F_none;
 
-    nests->size = length;
+      for (f_number_unsigned_t i = length; i < nests->size; ++i) {
 
-    if (nests->used > nests->size) {
-      nests->used = length;
+        status = private_f_fss_nest_resize(0, &nests->array[i]);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_fss_nest_t), (void **) &nests->array, &nests->used, &nests->size);
   }
-#endif // !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_increase_) || !defined(_di_f_fss_nests_increase_by_) || !defined(_di_f_fss_nests_resize_)
+#endif // !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index c38577e7ff99da7459d7be1da7623e0a8ed73a0b..78cd408cf09a1aa49d03f13d05ae415962799455 100644 (file)
@@ -26,16 +26,18 @@ extern "C" {
  *   The nest to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   Errors (with error bit) from: f_memory_adjust().
- *   Errors (with error bit) from: macro_f_fss_nest_t_adjust().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- * @see macro_f_fss_nest_t_adjust()
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
  *
- * @see f_fss_nest_adjust()
- * @see f_fss_nest_decimate_by()
- * @see f_memory_adjust()
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
+ *
+ * @see f_fss_nests_adjust()
+ * @see f_fss_nests_decimate_by()
  */
 #if !defined(_di_f_fss_nest_adjust_) || !defined(_di_f_fss_nest_decimate_by_)
   extern f_status_t private_f_fss_nest_adjust(const f_number_unsigned_t length, f_fss_nest_t * const nest) F_attribute_visibility_internal_d;
@@ -52,22 +54,22 @@ extern "C" {
  *   The nest to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: macro_f_fss_nest_t_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_dynamic_resize().
  *
- * @see macro_f_fss_nest_t_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_dynamic_resize()
  *
- * @see f_fss_nest_decrease_by()
- * @see f_fss_nest_increase()
- * @see f_fss_nest_increase_by()
- * @see f_fss_nest_resize()
- * @see f_memory_resize()
+ * @see f_fss_nests_decrease_by()
+ * @see f_fss_nests_resize()
  */
-#if !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_increase_) || !defined(_di_f_fss_nest_increase_by_) || !defined(_di_f_fss_nest_resize_)
+#if !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_resize_)
   extern f_status_t private_f_fss_nest_resize(const f_number_unsigned_t length, f_fss_nest_t * const nest) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_increase_) || !defined(_di_f_fss_nest_increase_by_) || !defined(_di_f_fss_nest_resize_)
+#endif // !defined(_di_f_fss_nest_decrease_by_) || !defined(_di_f_fss_nest_resize_)
 
 /**
  * Private implementation for resizing.
@@ -80,16 +82,18 @@ extern "C" {
  *   The nests to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
  *
- *   Errors (with error bit) from: f_memory_adjust().
- *   Errors (with error bit) from: macro_f_fss_nest_t_adjust().
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- * @see macro_f_fss_nest_t_adjust()
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_dynamic_adjust().
+ *
+ * @see f_memory_array_adjust()
+ * @see f_string_dynamic_adjust()
  *
  * @see f_fss_nests_adjust()
  * @see f_fss_nests_decimate_by()
- * @see f_memory_adjust()
  */
 #if !defined(_di_f_fss_nests_adjust_) || !defined(_di_f_fss_nests_decimate_by_)
   extern f_status_t private_f_fss_nests_adjust(const f_number_unsigned_t length, f_fss_nests_t * const nests) F_attribute_visibility_internal_d;
@@ -106,22 +110,22 @@ extern "C" {
  *   The nests to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_resize().
- *   Errors (with error bit) from: macro_f_fss_nest_t_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_dynamic_resize().
  *
- * @see macro_f_fss_nest_t_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_dynamic_resize()
  *
  * @see f_fss_nests_decrease_by()
- * @see f_fss_nests_increase()
- * @see f_fss_nests_increase_by()
  * @see f_fss_nests_resize()
- * @see f_memory_resize()
  */
-#if !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_increase_) || !defined(_di_f_fss_nests_increase_by_) || !defined(_di_f_fss_nests_resize_)
+#if !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_resize_)
   extern f_status_t private_f_fss_nests_resize(const f_number_unsigned_t length, f_fss_nests_t * const nests) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_increase_) || !defined(_di_f_fss_nests_increase_by_) || !defined(_di_f_fss_nests_resize_)
+#endif // !defined(_di_f_fss_nests_decrease_by_) || !defined(_di_f_fss_nests_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index e0472e1325c23ae8cf26bb9198dcdf1203fdbf24..067a2aef5b3ecf2f5433e80f6feeb9ad0a3f2cf7 100644 (file)
@@ -18,7 +18,7 @@ extern "C" {
   }
 #endif // !defined(_di_f_fss_set_adjust_) || !defined(_di_f_fss_set_decimate_by_)
 
-#if !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_increase_) || !defined(_di_f_fss_set_increase_by_) || !defined(_di_f_fss_set_resize_)
+#if !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_resize_)
   f_status_t private_f_fss_set_resize(const f_number_unsigned_t length, f_fss_set_t *set) {
 
     f_status_t status = f_string_ranges_resize(length, &set->objects);
@@ -29,61 +29,47 @@ extern "C" {
 
     return F_none;
   }
-#endif // !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_increase_) || !defined(_di_f_fss_set_increase_by_) || !defined(_di_f_fss_set_resize_)
+#endif // !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_resize_)
 
 #if !defined(_di_f_fss_sets_adjust_) || !defined(_di_f_fss_sets_decimate_by_)
   f_status_t private_f_fss_sets_adjust(const f_number_unsigned_t length, f_fss_sets_t * const sets) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < sets->size; ++i) {
+      for (f_number_unsigned_t i = length; i < sets->size; ++i) {
 
-      status = f_string_ranges_adjust(0, &sets->array[i].objects);
-      if (F_status_is_error(status)) return status;
+        status = f_string_ranges_adjust(0, &sets->array[i].objects);
+        if (F_status_is_error(status)) return status;
 
-      status = f_string_rangess_adjust(0, &sets->array[i].contents);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_adjust(sets->size, length, sizeof(f_fss_set_t), (void **) & sets->array);
-    if (F_status_is_error(status)) return status;
-
-    sets->size = length;
-
-    if (sets->used > sets->size) {
-      sets->used = length;
+        status = f_string_rangess_adjust(0, &sets->array[i].contents);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_fss_set_t), (void **) &sets->array, &sets->used, &sets->size);
   }
 #endif // !defined(_di_f_fss_sets_adjust_) || !defined(_di_f_fss_sets_decimate_by_)
 
-#if !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_increase_) || !defined(_di_f_fss_sets_increase_by_) || !defined(_di_f_fss_sets_resize_)
+#if !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_resize_)
   f_status_t private_f_fss_sets_resize(const f_number_unsigned_t length, f_fss_sets_t * const sets) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < sets->size; ++i) {
+      for (f_number_unsigned_t i = length; i < sets->size; ++i) {
 
-      status = f_string_ranges_resize(0, &sets->array[i].objects);
-      if (F_status_is_error(status)) return status;
+        status = f_string_ranges_resize(0, &sets->array[i].objects);
+        if (F_status_is_error(status)) return status;
 
-      status = f_string_rangess_resize(0, &sets->array[i].contents);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_resize(sets->size, length, sizeof(f_fss_set_t), (void **) & sets->array);
-    if (F_status_is_error(status)) return status;
-
-    sets->size = length;
-
-    if (sets->used > sets->size) {
-      sets->used = length;
+        status = f_string_rangess_resize(0, &sets->array[i].contents);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_fss_set_t), (void **) &sets->array, &sets->used, &sets->size);
   }
-#endif // !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_increase_) || !defined(_di_f_fss_sets_increase_by_) || !defined(_di_f_fss_sets_resize_)
+#endif // !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index 6c67ed342dae21190e9e521a613bbfbf5c6624b4..82b37815349514e3434f2ab815fa2da12ee8f487 100644 (file)
@@ -28,11 +28,11 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_adjust().
- *   Errors (with error bit) from: macro_f_string_ranges_t_adjust().
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
  *
- * @see macro_f_string_rangess_t_adjust()
- * @see macro_f_string_ranges_t_adjust()
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
  *
  * @see f_fss_set_adjust()
  * @see f_fss_set_decimate_by()
@@ -54,20 +54,18 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_resize().
- *   Errors (with error bit) from: macro_f_string_ranges_t_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
  *
- * @see macro_f_string_rangess_t_resize()
- * @see macro_f_string_ranges_t_resize()
+ * @see f_string_ranges_resize
+ * @see f_string_rangess_resize()()
  *
  * @see f_fss_set_decrease_by()
- * @see f_fss_set_increase()
- * @see f_fss_set_increase_by()
  * @see f_fss_set_resize()
  */
-#if !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_increase_) || !defined(_di_f_fss_set_increase_by_) || !defined(_di_f_fss_set_resize_)
+#if !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_resize_)
   extern f_status_t private_f_fss_set_resize(const f_number_unsigned_t length, f_fss_set_t * const set) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_increase_) || !defined(_di_f_fss_set_increase_by_) || !defined(_di_f_fss_set_resize_)
+#endif // !defined(_di_f_fss_set_decrease_by_) || !defined(_di_f_fss_set_resize_)
 
 /**
  * Private implementation for resizing.
@@ -80,18 +78,20 @@ extern "C" {
  *   The sets to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_adjust().
- *   Errors (with error bit) from: macro_f_string_ranges_t_adjust().
- *   Errors (with error bit) from: f_memory_adjust().
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
  *
- * @see macro_f_string_rangess_t_adjust()
- * @see macro_f_string_ranges_t_adjust()
+ * @see f_memory_array_adjust()
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
  *
  * @see f_fss_sets_adjust()
  * @see f_fss_sets_decimate_by()
- * @see f_memory_adjust()
  */
 #if !defined(_di_f_fss_sets_adjust_) || !defined(_di_f_fss_sets_decimate_by_)
   extern f_status_t private_f_fss_sets_adjust(const f_number_unsigned_t length, f_fss_sets_t * const sets) F_attribute_visibility_internal_d;
@@ -108,24 +108,24 @@ extern "C" {
  *   The sets to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_resize().
- *   Errors (with error bit) from: macro_f_string_ranges_t_resize().
- *   Errors (with error bit) from: f_memory_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
  *
- * @see macro_f_string_rangess_t_resize()
- * @see macro_f_string_ranges_t_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
  *
  * @see f_fss_sets_decrease_by()
- * @see f_fss_sets_increase()
- * @see f_fss_sets_increase_by()
  * @see f_fss_sets_resize()
- * @see f_memory_resize()
  */
-#if !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_increase_) || !defined(_di_f_fss_sets_increase_by_) || !defined(_di_f_fss_sets_resize_)
+#if !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_resize_)
   extern f_status_t private_f_fss_sets_resize(const f_number_unsigned_t length, f_fss_sets_t * const sets) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_increase_) || !defined(_di_f_fss_sets_increase_by_) || !defined(_di_f_fss_sets_resize_)
+#endif // !defined(_di_f_fss_sets_decrease_by_) || !defined(_di_f_fss_sets_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index ee93a96388852f6a438dce0f230330e3da171f74..3324f434b1652170bb37d3ae04e269f98ca1e5ce 100644 (file)
@@ -24,7 +24,7 @@ extern "C" {
   }
 #endif // !defined(_di_f_fss_set_quote_adjust_) || !defined(_di_f_fss_set_quote_decimate_by_)
 
-#if !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_increase_) || !defined(_di_f_fss_set_quote_increase_by_) || !defined(_di_f_fss_set_quote_resize_)
+#if !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_resize_)
   f_status_t private_f_fss_set_quote_resize(const f_number_unsigned_t length, f_fss_set_quote_t * const set_quote) {
 
     f_status_t status = f_string_ranges_resize(length, &set_quote->objects);
@@ -41,73 +41,59 @@ extern "C" {
 
     return F_none;
   }
-#endif // !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_increase_) || !defined(_di_f_fss_set_quote_increase_by_) || !defined(_di_f_fss_set_quote_resize_)
+#endif // !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_resize_)
 
 #if !defined(_di_f_fss_set_quotes_adjust_) || !defined(_di_f_fss_set_quotes_decimate_by_)
   f_status_t private_f_fss_set_quotes_adjust(const f_number_unsigned_t length, f_fss_set_quotes_t * const set_quotes) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < set_quotes->size; ++i) {
+      for (f_number_unsigned_t i = length; i < set_quotes->size; ++i) {
 
-      status = f_string_ranges_adjust(0, &set_quotes->array[i].objects);
-      if (F_status_is_error(status)) return status;
+        status = f_string_ranges_adjust(0, &set_quotes->array[i].objects);
+        if (F_status_is_error(status)) return status;
 
-      status = f_string_rangess_adjust(0, &set_quotes->array[i].contents);
-      if (F_status_is_error(status)) return status;
+        status = f_string_rangess_adjust(0, &set_quotes->array[i].contents);
+        if (F_status_is_error(status)) return status;
 
-      status = f_uint8s_adjust(0, &set_quotes->array[i].objects_quote);
-      if (F_status_is_error(status)) return status;
+        status = f_uint8s_adjust(0, &set_quotes->array[i].objects_quote);
+        if (F_status_is_error(status)) return status;
 
-      status = f_uint8ss_adjust(0, &set_quotes->array[i].contents_quote);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_adjust(set_quotes->size, length, sizeof(f_fss_set_quote_t), (void **) & set_quotes->array);
-    if (F_status_is_error(status)) return status;
-
-    set_quotes->size = length;
-
-    if (set_quotes->used > set_quotes->size) {
-      set_quotes->used = length;
+        status = f_uint8ss_adjust(0, &set_quotes->array[i].contents_quote);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_fss_set_quote_t), (void **) &set_quotes->array, &set_quotes->used, &set_quotes->size);
   }
 #endif // !defined(_di_f_fss_set_quotes_adjust_) || !defined(_di_f_fss_set_quotes_decimate_by_)
 
-#if !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_increase_) || !defined(_di_f_fss_set_quotes_increase_by_) || !defined(_di_f_fss_set_quotes_resize_)
+#if !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_resize_)
   f_status_t private_f_fss_set_quotes_resize(const f_number_unsigned_t length, f_fss_set_quotes_t * const set_quotes) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < set_quotes->size; ++i) {
+      for (f_number_unsigned_t i = length; i < set_quotes->size; ++i) {
 
-      status = f_string_ranges_resize(0, &set_quotes->array[i].objects);
-      if (F_status_is_error(status)) return status;
+        status = f_string_ranges_resize(0, &set_quotes->array[i].objects);
+        if (F_status_is_error(status)) return status;
 
-      status = f_string_rangess_resize(0, &set_quotes->array[i].contents);
-      if (F_status_is_error(status)) return status;
+        status = f_string_rangess_resize(0, &set_quotes->array[i].contents);
+        if (F_status_is_error(status)) return status;
 
-      status = f_uint8s_resize(0, &set_quotes->array[i].objects_quote);
-      if (F_status_is_error(status)) return status;
+        status = f_uint8s_resize(0, &set_quotes->array[i].objects_quote);
+        if (F_status_is_error(status)) return status;
 
-      status = f_uint8ss_resize(0, &set_quotes->array[i].contents_quote);
-      if (F_status_is_error(status)) return status;
-    } // for
-
-    status = f_memory_resize(set_quotes->size, length, sizeof(f_fss_set_quote_t), (void **) & set_quotes->array);
-    if (F_status_is_error(status)) return status;
-
-    set_quotes->size = length;
-
-    if (set_quotes->used > set_quotes->size) {
-      set_quotes->used = length;
+        status = f_uint8ss_resize(0, &set_quotes->array[i].contents_quote);
+        if (F_status_is_error(status)) return status;
+      } // for
     }
 
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_fss_set_quote_t), (void **) &set_quotes->array, &set_quotes->used, &set_quotes->size);
   }
-#endif // !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_increase_) || !defined(_di_f_fss_set_quotes_increase_by_) || !defined(_di_f_fss_set_quotes_resize_)
+#endif // !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index 2e285ec5faf72c10b967b1de883bea4ce2d94492..dd693079f1408ebc2e5c72a90bbf1d0d13c0069d 100644 (file)
@@ -28,15 +28,15 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_adjust().
- *   Errors (with error bit) from: macro_f_string_ranges_t_adjust().
- *   Errors (with error bit) from: macro_f_uint8s_t_adjust().
- *   Errors (with error bit) from: macro_f_uint8ss_t_adjust().
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
  *
- * @see macro_f_string_rangess_t_adjust()
- * @see macro_f_string_ranges_t_adjust()
- * @see macro_f_uint8s_t_adjust()
- * @see macro_f_uint8ss_t_adjust()
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  *
  * @see f_fss_set_quote_adjust()
  * @see f_fss_set_quote_decimate_by()
@@ -58,24 +58,22 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_resize().
- *   Errors (with error bit) from: macro_f_string_ranges_t_resize().
- *   Errors (with error bit) from: macro_f_uint8s_t_resize().
- *   Errors (with error bit) from: macro_f_uint8ss_t_resize().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
  *
- * @see macro_f_string_rangess_t_resize()
- * @see macro_f_string_ranges_t_resize()
- * @see macro_f_uint8s_t_resize()
- * @see macro_f_uint8ss_t_resize()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  *
  * @see f_fss_set_quote_decrease_by()
- * @see f_fss_set_quote_increase()
- * @see f_fss_set_quote_increase_by()
  * @see f_fss_set_quote_resize()
  */
-#if !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_increase_) || !defined(_di_f_fss_set_quote_increase_by_) || !defined(_di_f_fss_set_quote_resize_)
+#if !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_resize_)
   extern f_status_t private_f_fss_set_quote_resize(const f_number_unsigned_t length, f_fss_set_quote_t * const set_quote) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_increase_) || !defined(_di_f_fss_set_quote_increase_by_) || !defined(_di_f_fss_set_quote_resize_)
+#endif // !defined(_di_f_fss_set_quote_decrease_by_) || !defined(_di_f_fss_set_quote_resize_)
 
 /**
  * Private implementation for resizing.
@@ -88,21 +86,24 @@ extern "C" {
  *   The set_quotes to adjust.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_adjust().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_adjust().
- *   Errors (with error bit) from: macro_f_string_ranges_t_adjust().
- *   Errors (with error bit) from: macro_f_uint8s_t_adjust().
- *   Errors (with error bit) from: macro_f_uint8ss_t_adjust().
- *   Errors (with error bit) from: f_memory_adjust().
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
  *
- * @see macro_f_string_rangess_t_adjust()
- * @see macro_f_string_ranges_t_adjust()
- * @see macro_f_uint8s_t_adjust()
- * @see macro_f_uint8ss_t_adjust()
+ * @see f_memory_array_adjust()
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  *
+ * @see f_fss_set_quotes_decrease_by()
  * @see f_fss_set_quotes_adjust()
- * @see f_fss_set_quotes_decimate_by()
  * @see f_memory_adjust()
  */
 #if !defined(_di_f_fss_set_quotes_adjust_) || !defined(_di_f_fss_set_quotes_decimate_by_)
@@ -120,28 +121,29 @@ extern "C" {
  *   The set_quotes to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: macro_f_string_rangess_t_resize().
- *   Errors (with error bit) from: macro_f_string_ranges_t_resize().
- *   Errors (with error bit) from: macro_f_uint8s_t_resize().
- *   Errors (with error bit) from: macro_f_uint8ss_t_resize().
- *   Errors (with error bit) from: f_memory_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
  *
- * @see macro_f_string_rangess_t_resize()
- * @see macro_f_string_ranges_t_resize()
- * @see macro_f_uint8s_t_resize()
- * @see macro_f_uint8ss_t_resize()
+ * @see f_memory_array_resize()
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  *
  * @see f_fss_set_quotes_decrease_by()
- * @see f_fss_set_quotes_increase()
- * @see f_fss_set_quotes_increase_by()
  * @see f_fss_set_quotes_resize()
  * @see f_memory_resize()
  */
-#if !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_increase_) || !defined(_di_f_fss_set_quotes_increase_by_) || !defined(_di_f_fss_set_quotes_resize_)
+#if !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_resize_)
   extern f_status_t private_f_fss_set_quotes_resize(const f_number_unsigned_t length, f_fss_set_quotes_t * const set_quotes) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_increase_) || !defined(_di_f_fss_set_quotes_increase_by_) || !defined(_di_f_fss_set_quotes_resize_)
+#endif // !defined(_di_f_fss_set_quotes_decrease_by_) || !defined(_di_f_fss_set_quotes_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index b9f45e2a54a2623c886336b04185b3a8820e5230..704b12c3e0725eb1ab512cc92d50cb23b835ea0b 100644 (file)
@@ -20,8 +20,10 @@ extern "C" {
 #if !defined(_di_f_fss_simple_packet_ranges_append_) || !defined(_di_f_fss_simple_packet_ranges_append_all_) || !defined(_di_f_fss_simple_packet_rangess_append_all_)
   extern f_status_t private_f_fss_simple_packet_ranges_append_all(const f_fss_simple_packet_ranges_t source, f_fss_simple_packet_ranges_t *destination) {
 
-    const f_status_t status = f_memory_array_increase_by(source.used, sizeof(f_fss_simple_packet_range_t), (void **) &destination->array, &destination->used, &destination->size);
-    if (F_status_is_error(status)) return status;
+    {
+      const f_status_t status = f_memory_array_increase_by(source.used, sizeof(f_fss_simple_packet_range_t), (void **) &destination->array, &destination->used, &destination->size);
+      if (F_status_is_error(status)) return status;
+    }
 
     for (f_number_unsigned_t i = 0; i < source.used; ++i) {
       destination->array[destination->used++] = source.array[i];
@@ -34,32 +36,36 @@ extern "C" {
 #if !defined(_di_f_fss_simple_packet_rangess_adjust_) || !defined(_di_f_fss_simple_packet_rangess_decimate_by_)
   f_status_t private_f_fss_simple_packet_rangess_adjust(const f_number_unsigned_t length, f_fss_simple_packet_rangess_t *rangess) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < rangess->size; ++i) {
+      for (f_number_unsigned_t i = length; i < rangess->size; ++i) {
 
-      status = f_memory_array_adjust(0, sizeof(f_fss_simple_packet_range_t), (void **) &rangess->array[i].array, &rangess->array[i].used, &rangess->array[i].size);
-      if (F_status_is_error(status)) return status;
-    } // for
+        status = f_memory_array_adjust(0, sizeof(f_fss_simple_packet_range_t), (void **) &rangess->array[i].array, &rangess->array[i].used, &rangess->array[i].size);
+        if (F_status_is_error(status)) return status;
+      } // for
+    }
 
     return f_memory_array_adjust(length, sizeof(f_fss_simple_packet_ranges_t), (void **) &rangess->array, &rangess->used, &rangess->size);
   }
 #endif // !defined(_di_f_fss_simple_packet_rangess_adjust_) || !defined(_di_f_fss_simple_packet_rangess_decimate_by_)
 
-#if !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_increase_) || !defined(_di_f_fss_simple_packet_rangess_increase_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
+#if !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
   f_status_t private_f_fss_simple_packet_rangess_resize(const f_number_unsigned_t length, f_fss_simple_packet_rangess_t *rangess) {
 
-    f_status_t status = F_none;
+    {
+      f_status_t status = F_none;
 
-    for (f_number_unsigned_t i = length; i < rangess->size; ++i) {
+      for (f_number_unsigned_t i = length; i < rangess->size; ++i) {
 
-      status = f_memory_array_resize(0, sizeof(f_fss_simple_packet_range_t), (void **) &rangess->array[i].array, &rangess->array[i].used, &rangess->array[i].size);
-      if (F_status_is_error(status)) return status;
-    } // for
+        status = f_memory_array_resize(0, sizeof(f_fss_simple_packet_range_t), (void **) &rangess->array[i].array, &rangess->array[i].used, &rangess->array[i].size);
+        if (F_status_is_error(status)) return status;
+      } // for
+    }
 
     return f_memory_array_resize(length, sizeof(f_fss_simple_packet_ranges_t), (void **) &rangess->array, &rangess->used, &rangess->size);
   }
-#endif // !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_increase_) || !defined(_di_f_fss_simple_packet_rangess_increase_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
+#endif // !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index b30df704ae691bcaf2a91e25430456a7f200b611..f9639cdef5ab9cc9e9465c05c219dfd8c6e1a91e 100644 (file)
@@ -26,11 +26,14 @@ extern "C" {
  *   The destination lengths the source is appended onto.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_increase().
  *
- *   Errors (with error bit) from: f_memory_resize().
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *
+ * @see f_memory_array_increase()
  *
- * @see f_memory_resize()
  * @see f_fss_simple_packet_ranges_append()
  * @see f_fss_simple_packet_rangess_append()
  */
@@ -49,11 +52,14 @@ extern "C" {
  *   The destination lengths the source is appended onto.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_increase_by().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_resize().
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase_by()
  *
- * @see f_memory_resize()
  * @see f_fss_simple_packet_ranges_append_all()
  * @see f_fss_simple_packet_rangess_append()
  * @see f_fss_simple_packet_rangess_append_all()
@@ -73,18 +79,16 @@ extern "C" {
  *   The rangess array to adjust.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
+ *   Success from f_memory_array_adjust().
  *
- *   F_array_too_large (with error bit) if new length is larger than max array length.
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_adjust().
- *   Errors (with error bit) from: f_memory_destroy().
+ *   Errors (with error bit) from: f_memory_array_adjust().
+ *
+ * @see f_memory_array_adjust()
  *
+ * @see f_fss_simple_packet_rangess_decrease_by()
  * @see f_fss_simple_packet_rangess_adjust()
- * @see f_fss_simple_packet_rangess_decimate_by()
  */
 #if !defined(_di_f_fss_simple_packet_rangess_adjust_) || !defined(_di_f_fss_simple_packet_rangess_decimate_by_)
   extern f_status_t private_f_fss_simple_packet_rangess_adjust(const f_number_unsigned_t length, f_fss_simple_packet_rangess_t *rangess) F_attribute_visibility_internal_d;
@@ -101,24 +105,20 @@ extern "C" {
  *   The rangess array to resize.
  *
  * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
+ *   Success from f_memory_array_resize().
  *
- *   F_array_too_large (with error bit) if new length is larger than max array length.
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
  *
- *   Errors (with error bit) from: f_memory_delete().
- *   Errors (with error bit) from: f_memory_resize().
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  *
  * @see f_fss_simple_packet_rangess_decrease_by()
- * @see f_fss_simple_packet_rangess_increase()
- * @see f_fss_simple_packet_rangess_increase_by()
  * @see f_fss_simple_packet_rangess_resize()
  */
-#if !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_increase_) || !defined(_di_f_fss_simple_packet_rangess_increase_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
+#if !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
   extern f_status_t private_f_fss_simple_packet_rangess_resize(const f_number_unsigned_t length, f_fss_simple_packet_rangess_t *rangess) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_increase_) || !defined(_di_f_fss_simple_packet_rangess_increase_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
+#endif // !defined(_di_f_fss_simple_packet_rangess_decrease_by_) || !defined(_di_f_fss_simple_packet_rangess_resize_)
 
 #ifdef __cplusplus
 } // extern "C"
index 3f4b59f41f5944dc84b173850468826f29761c5c..dad2b5ab217dc58a12463c3b92ca50a3c003c710 100644 (file)
@@ -22,9 +22,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (set->objects.size - amount > 0) return private_f_fss_set_adjust(set->objects.size - amount, set);
 
-    return private_f_fss_set_adjust(0, set);
+    return private_f_fss_set_adjust((set->objects.size - amount > 0) ? set->objects.size - amount : 0, set);
   }
 #endif // _di_f_fss_set_decimate_by_
 
@@ -35,9 +34,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (set->objects.size - amount > 0) return private_f_fss_set_resize(set->objects.size - amount, set);
 
-    return private_f_fss_set_resize(0, set);
+    return private_f_fss_set_resize((set->objects.size - amount > 0) ? set->objects.size - amount : 0, set);
   }
 #endif // _di_f_fss_set_decrease_by_
 
@@ -48,6 +46,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && set->objects.used + 1 > set->objects.size) {
+      if (set->objects.used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = set->objects.used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -69,12 +69,16 @@ extern "C" {
       if (!set) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (set->objects.used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+      const f_number_unsigned_t length = set->objects.used + amount;
 
-    if (set->objects.used + amount > set->objects.size) {
-      if (set->objects.used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      if (length > set->objects.size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      return private_f_fss_set_resize(set->objects.used + amount, set);
+        return private_f_fss_set_resize(length, set);
+      }
     }
 
     return F_data_not;
@@ -108,9 +112,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (sets->size - amount > 0) return private_f_fss_sets_adjust(sets->size - amount, sets);
 
-    return private_f_fss_sets_adjust(0, sets);
+    return private_f_fss_sets_adjust((sets->size > amount) ? sets->size - amount : 0, sets);
   }
 #endif // _di_f_fss_sets_decimate_by_
 
@@ -121,9 +124,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (sets->size - amount > 0) return private_f_fss_sets_resize(sets->size - amount, sets);
 
-    return private_f_fss_sets_resize(0, sets);
+    return private_f_fss_sets_resize((sets->size > amount) ? sets->size - amount : 0, sets);
   }
 #endif // _di_f_fss_sets_decrease_by_
 
@@ -133,19 +135,7 @@ extern "C" {
       if (!sets) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (step && sets->used + 1 > sets->size) {
-      f_number_unsigned_t size = sets->used + step;
-
-      if (size > F_number_t_size_unsigned_d) {
-        if (sets->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-        size = F_number_t_size_unsigned_d;
-      }
-
-      return private_f_fss_sets_resize(size, sets);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase(step, sizeof(f_fss_set_t), (void **) &sets->array, &sets->used, &sets->size);
   }
 #endif // _di_f_fss_sets_increase_
 
@@ -155,15 +145,7 @@ extern "C" {
       if (!sets) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
-
-    if (sets->used + amount > sets->size) {
-      if (sets->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-      return private_f_fss_sets_resize(sets->used + amount, sets);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase_by(amount, sizeof(f_fss_set_t), (void **) &sets->array, &sets->used, &sets->size);
   }
 #endif // _di_f_fss_sets_increase_by_
 
index cd834fc8c211d749500aa4d41262a90f3fc5afef..394bf177c5c2feb622f6e80e5c9ea1af8cc06aad 100644 (file)
@@ -73,8 +73,6 @@ extern "C" {
   #define macro_f_fss_sets_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_fss_sets_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_fss_sets_t_clear(sets) macro_f_memory_structure_t_clear(set.objects)
-
   #define macro_f_fss_sets_t_resize(status, sets, length) status = f_fss_sets_resize(length, &sets);
   #define macro_f_fss_sets_t_adjust(status, sets, length) status = f_fss_sets_adjust(length, &sets);
 
@@ -98,8 +96,13 @@ extern "C" {
  * @return
  *   F_none on success.
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
  */
 #ifndef _di_f_fss_set_adjust_
   extern f_status_t f_fss_set_adjust(const f_number_unsigned_t length, f_fss_set_t * const set);
@@ -121,8 +124,13 @@ extern "C" {
  *   F_none on success.
  *   F_data_not if amount is 0.
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
  */
 #ifndef _di_f_fss_set_decimate_by_
   extern f_status_t f_fss_set_decimate_by(const f_number_unsigned_t amount, f_fss_set_t * const set);
@@ -142,9 +150,15 @@ extern "C" {
  *
  * @return
  *   F_none on success.
+ *   F_data_not if amount is 0.
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
  */
 #ifndef _di_f_fss_set_decrease_by_
   extern f_status_t f_fss_set_decrease_by(const f_number_unsigned_t amount, f_fss_set_t * const set);
@@ -169,6 +183,15 @@ extern "C" {
  *   F_array_too_large (with error bit) if the new array length is too large.
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ * @return
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_set_increase_
   extern f_status_t f_fss_set_increase(const f_number_unsigned_t step, f_fss_set_t * const set);
@@ -193,6 +216,15 @@ extern "C" {
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
  *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ * @return
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_set_increase_by_
   extern f_status_t f_fss_set_increase_by(const f_number_unsigned_t amount, f_fss_set_t * const set);
@@ -211,6 +243,15 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ * @return
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_set_resize_
   extern f_status_t f_fss_set_resize(const f_number_unsigned_t length, f_fss_set_t * const set);
@@ -229,6 +270,15 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ * @return
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_sets_adjust_
   extern f_status_t f_fss_sets_adjust(const f_number_unsigned_t length, f_fss_sets_t * const sets);
@@ -252,6 +302,15 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ * @return
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_sets_decimate_by_
   extern f_status_t f_fss_sets_decimate_by(const f_number_unsigned_t amount, f_fss_sets_t * const sets);
@@ -274,6 +333,15 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ * @return
+ *   Success from f_memory_array_resize().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_sets_decrease_by_
   extern f_status_t f_fss_sets_decrease_by(const f_number_unsigned_t amount, f_fss_sets_t * const sets);
@@ -298,6 +366,15 @@ extern "C" {
  *   F_array_too_large (with error bit) if the new array length is too large.
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ * @return
+ *   Success from f_memory_array_increase().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *
+ * @see f_memory_array_increase()
  */
 #ifndef _di_f_fss_sets_increase_
   extern f_status_t f_fss_sets_increase(const f_number_unsigned_t step, f_fss_sets_t * const sets);
@@ -322,6 +399,15 @@ extern "C" {
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
  *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ * @return
+ *   Success from f_memory_array_increase_by().
+ *
+ *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *
+ * @see f_memory_array_increase_by()
  */
 #ifndef _di_f_fss_sets_increase_by_
   extern f_status_t f_fss_sets_increase_by(const f_number_unsigned_t amount, f_fss_sets_t * const sets);
@@ -333,13 +419,16 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param sets
- *   The sets array to adjust.
+ *   The sets array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_resize().
+ *
+ * @see f_memory_array_resize()
  */
 #ifndef _di_f_fss_sets_resize_
   extern f_status_t f_fss_sets_resize(const f_number_unsigned_t length, f_fss_sets_t * const sets);
index 29b74bed08a29c7d387d346e5b4d89f136015dd6..39bf227f6dcffcb08ea80842a1cc9a1e6955e70a 100644 (file)
@@ -22,9 +22,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (set_quote->objects.size - amount > 0) return private_f_fss_set_quote_adjust(set_quote->objects.size - amount, set_quote);
 
-    return private_f_fss_set_quote_adjust(0, set_quote);
+    return private_f_fss_set_quote_adjust((set_quote->objects.size - amount > 0) ? set_quote->objects.size - amount : 0, set_quote);
   }
 #endif // _di_f_fss_set_quote_decimate_by_
 
@@ -35,9 +34,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (set_quote->objects.size - amount > 0) return private_f_fss_set_quote_resize(set_quote->objects.size - amount, set_quote);
 
-    return private_f_fss_set_quote_resize(0, set_quote);
+    return private_f_fss_set_quote_resize((set_quote->objects.size - amount > 0) ? set_quote->objects.size - amount : 0, set_quote);
   }
 #endif // _di_f_fss_set_quote_decrease_by_
 
@@ -48,6 +46,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && set_quote->objects.used + 1 > set_quote->objects.size) {
+      if (set_quote->objects.used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = set_quote->objects.used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -69,12 +69,16 @@ extern "C" {
       if (!set_quote) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (set_quote->objects.used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+      const f_number_unsigned_t length = set_quote->objects.used + amount;
 
-    if (set_quote->objects.used + amount > set_quote->objects.size) {
-      if (set_quote->objects.used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      if (length > set_quote->objects.size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      return private_f_fss_set_quote_resize(set_quote->objects.used + amount, set_quote);
+        return private_f_fss_set_quote_resize(length, set_quote);
+      }
     }
 
     return F_data_not;
@@ -108,9 +112,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (set_quotes->size - amount > 0) return private_f_fss_set_quotes_adjust(set_quotes->size - amount, set_quotes);
 
-    return private_f_fss_set_quotes_adjust(0, set_quotes);
+    return private_f_fss_set_quotes_adjust((set_quotes->size > amount) ? set_quotes->size - amount : 0, set_quotes);
   }
 #endif // _di_f_fss_set_quotes_decimate_by_
 
@@ -121,9 +124,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (set_quotes->size - amount > 0) return private_f_fss_set_quotes_resize(set_quotes->size - amount, set_quotes);
 
-    return private_f_fss_set_quotes_resize(0, set_quotes);
+    return private_f_fss_set_quotes_resize((set_quotes->size > amount) ? set_quotes->size - amount : 0, set_quotes);
   }
 #endif // _di_f_fss_set_quotes_decrease_by_
 
@@ -133,19 +135,7 @@ extern "C" {
       if (!set_quotes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (step && set_quotes->used + 1 > set_quotes->size) {
-      f_number_unsigned_t size = set_quotes->used + step;
-
-      if (size > F_number_t_size_unsigned_d) {
-        if (set_quotes->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-        size = F_number_t_size_unsigned_d;
-      }
-
-      return private_f_fss_set_quotes_resize(size, set_quotes);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase(step, sizeof(f_fss_set_quote_t), (void **) &set_quotes->array, &set_quotes->used, &set_quotes->size);
   }
 #endif // _di_f_fss_set_quotes_increase_
 
@@ -155,15 +145,7 @@ extern "C" {
       if (!set_quotes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
-
-    if (set_quotes->used + amount > set_quotes->size) {
-      if (set_quotes->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-      return private_f_fss_set_quotes_resize(set_quotes->used + amount, set_quotes);
-    }
-
-    return F_data_not;
+    return f_memory_array_increase_by(amount, sizeof(f_fss_set_quote_t), (void **) &set_quotes->array, &set_quotes->used, &set_quotes->size);
   }
 #endif // _di_f_fss_set_quotes_increase_by_
 
index cf9480dd32161fafa913f2146c475e6f9a438eb8..968b9b1531f8271e8321c47a3fdae893a168cb16 100644 (file)
@@ -80,8 +80,6 @@ extern "C" {
   #define macro_f_fss_set_quotes_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_fss_set_quotes_t_initialize_2(array, length)     { array, length, length }
 
-  #define macro_f_fss_set_quotes_t_clear(nameds) macro_f_memory_structure_clear(nameds)
-
   #define macro_f_fss_set_quotes_t_resize(status, set_quotes, length) status = f_fss_set_quotes_resize(length, &set_quotes);
   #define macro_f_fss_set_quotes_t_adjust(status, set_quotes, length) status = f_fss_set_quotes_adjust(length, &set_quotes);
 
@@ -107,6 +105,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
+ *
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  */
 #ifndef _di_f_fss_set_quote_adjust_
   extern f_status_t f_fss_set_quote_adjust(const f_number_unsigned_t length, f_fss_set_quote_t * const set_quote);
@@ -130,6 +138,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
+ *
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  */
 #ifndef _di_f_fss_set_quote_decimate_by_
   extern f_status_t f_fss_set_quote_decimate_by(const f_number_unsigned_t amount, f_fss_set_quote_t * const set_quote);
@@ -152,6 +170,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quote_decrease_by_
   extern f_status_t f_fss_set_quote_decrease_by(const f_number_unsigned_t amount, f_fss_set_quote_t * const set_quote);
@@ -176,6 +204,18 @@ extern "C" {
  *   F_array_too_large (with error bit) if the new array length is too large.
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_memory_array_increase()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quote_increase_
   extern f_status_t f_fss_set_quote_increase(const f_number_unsigned_t step, f_fss_set_quote_t * const set_quote);
@@ -200,6 +240,18 @@ extern "C" {
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
  *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_memory_array_increase_by()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quote_increase_by_
   extern f_status_t f_fss_set_quote_increase_by(const f_number_unsigned_t amount, f_fss_set_quote_t * const set_quote);
@@ -218,6 +270,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quote_resize_
   extern f_status_t f_fss_set_quote_resize(const f_number_unsigned_t length, f_fss_set_quote_t * const set_quote);
@@ -236,6 +298,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
+ *
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  */
 #ifndef _di_f_fss_set_quotes_adjust_
   extern f_status_t f_fss_set_quotes_adjust(const f_number_unsigned_t length, f_fss_set_quotes_t * const set_quotes);
@@ -259,6 +331,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_adjust().
+ *   Errors (with error bit) from: f_string_rangess_adjust().
+ *   Errors (with error bit) from: f_uint8s_adjust().
+ *   Errors (with error bit) from: f_uint8ss_adjust().
+ *
+ * @see f_string_ranges_adjust()
+ * @see f_string_rangess_adjust()
+ * @see f_uint8s_adjust()
+ * @see f_uint8ss_adjust()
  */
 #ifndef _di_f_fss_set_quotes_decimate_by_
   extern f_status_t f_fss_set_quotes_decimate_by(const f_number_unsigned_t amount, f_fss_set_quotes_t * const set_quotes);
@@ -281,6 +363,16 @@ extern "C" {
  *
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quotes_decrease_by_
   extern f_status_t f_fss_set_quotes_decrease_by(const f_number_unsigned_t amount, f_fss_set_quotes_t * const set_quotes);
@@ -305,6 +397,18 @@ extern "C" {
  *   F_array_too_large (with error bit) if the new array length is too large.
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_memory_array_increase()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quotes_increase_
   extern f_status_t f_fss_set_quotes_increase(const f_number_unsigned_t step, f_fss_set_quotes_t * const set_quotes);
@@ -329,6 +433,18 @@ extern "C" {
  *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
  *   F_array_too_large (with error bit) if the new array length is too large.
+ *
+ *   Errors (with error bit) from: f_memory_array_increase_by().
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_memory_array_increase_by()
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quotes_increase_by_
   extern f_status_t f_fss_set_quotes_increase_by(const f_number_unsigned_t amount, f_fss_set_quotes_t * const set_quotes);
@@ -340,13 +456,22 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param set_quotes
- *   The set_quotes array to adjust.
+ *   The set_quotes array to resize.
  *
  * @return
- *   F_none on success.
+ *   Success from f_memory_array_resize().
  *
- *   F_memory_not (with error bit) on out of memory.
  *   F_parameter (with error bit) if a parameter is invalid.
+ *
+ *   Errors (with error bit) from: f_string_ranges_resize().
+ *   Errors (with error bit) from: f_string_rangess_resize().
+ *   Errors (with error bit) from: f_uint8s_resize().
+ *   Errors (with error bit) from: f_uint8ss_resize().
+ *
+ * @see f_string_ranges_resize()
+ * @see f_string_rangess_resize()
+ * @see f_uint8s_resize()
+ * @see f_uint8ss_resize()
  */
 #ifndef _di_f_fss_set_quotes_resize_
   extern f_status_t f_fss_set_quotes_resize(const f_number_unsigned_t length, f_fss_set_quotes_t * const set_quotes);
index c09d7cd4b6bed3b8a5ec996806f79e1d6cdd66b1..ec447d9137b23a0a7d9b72d37e2cee3e509f563f 100644 (file)
@@ -84,8 +84,6 @@ extern "C" {
   #define macro_f_fss_simple_packet_ranges_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_fss_simple_packet_ranges_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_fss_simple_packet_ranges_t_clear(simple_packet_ranges) macro_f_memory_structure_t_clear(simple_packet_range.objects)
-
   #define macro_f_fss_simple_packet_ranges_t_resize(status, simple_packet_ranges, length) status = f_fss_simple_packet_ranges_resize(length, &simple_packet_ranges);
   #define macro_f_fss_simple_packet_ranges_t_adjust(status, simple_packet_ranges, length) status = f_fss_simple_packet_ranges_adjust(length, &simple_packet_ranges);
 
@@ -119,8 +117,6 @@ extern "C" {
   #define macro_f_fss_simple_packet_rangess_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_fss_simple_packet_rangess_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_fss_simple_packet_rangess_t_clear(simple_packet_rangess) macro_f_memory_structure_t_clear(simple_packet_ranges.objects)
-
   #define macro_f_fss_simple_packet_rangess_t_resize(status, simple_packet_rangess, length) status = f_fss_simple_packet_rangess_resize(length, &simple_packet_rangess);
   #define macro_f_fss_simple_packet_rangess_t_adjust(status, simple_packet_rangess, length) status = f_fss_simple_packet_rangess_adjust(length, &simple_packet_rangess);
 
@@ -533,7 +529,7 @@ extern "C" {
  * @param length
  *   The new size to use.
  * @param rangess
- *   The rangess array to adjust.
+ *   The rangess array to resize.
  *
  * @return
  *   Success from f_memory_array_resize().
index b0b4cadca154b2b32441c7793aab8ed4469eb5f0..34de16cc93a3df5b4e45ea05c6733fc0888ded4a 100644 (file)
@@ -248,8 +248,6 @@ extern "C" {
   #define macro_f_iki_datas_t_initialize_1(content, size, used) { array, size, used }
   #define macro_f_iki_datas_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_iki_datas_t_clear(datas) macro_f_memory_structure_clear(datas)
-
   #define macro_f_iki_datas_t_resize(status, datas, length) status = f_iki_datas_resize(length, &datas);
   #define macro_f_iki_datas_t_adjust(status, datas, length) status = f_iki_datas_adjust(length, &datas);
 
@@ -283,8 +281,6 @@ extern "C" {
   #define macro_f_iki_datass_t_initialize_1(content, size, used) { array, size, used }
   #define macro_f_iki_datass_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_iki_datass_t_clear(datas) macro_f_memory_structure_clear(datas)
-
   #define macro_f_iki_datass_t_resize(status, datas, length) status = f_iki_datass_resize(length, &datas);
   #define macro_f_iki_datass_t_adjust(status, datas, length) status = f_iki_datass_adjust(length, &datas);
 
index 039eeb5d3d7cd84e6762fe6914f38c8c133f3597..9f8ca36cd8f1a071737f270fe81fd8b0ed08d4c4 100644 (file)
@@ -89,10 +89,7 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-
-    if (datas->size > amount) {
-      return private_f_iki_datas_adjust(datas->size - amount, datas);
-    }
+    if (datas->size > amount) return private_f_iki_datas_adjust(datas->size - amount, datas);
 
     return private_f_iki_datas_adjust(0, datas);
   }
@@ -105,10 +102,7 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-
-    if (datas->size > amount) {
-      return private_f_iki_datas_resize(datas->size - amount, datas);
-    }
+    if (datas->size > amount) return private_f_iki_datas_resize(datas->size - amount, datas);
 
     return private_f_iki_datas_resize(0, datas);
   }
@@ -121,12 +115,12 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && datas->used + 1 > datas->size) {
+      if (datas->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = datas->used + step;
 
       if (size > F_number_t_size_unsigned_d) {
-        if (datas->used + 1 > F_number_t_size_unsigned_d) {
-          return F_status_set_error(F_array_too_large);
-        }
+        if (datas->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
         size = F_number_t_size_unsigned_d;
       }
@@ -144,14 +138,16 @@ extern "C" {
       if (!datas) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (datas->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (datas->used + amount > datas->size) {
-      if (datas->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = datas->used + amount;
 
-      return private_f_iki_datas_resize(datas->used + amount, datas);
+      if (length > datas->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_iki_datas_resize(length, datas);
+      }
     }
 
     return F_data_not;
@@ -238,10 +234,7 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-
-    if (datass->size > amount) {
-      return private_f_iki_datass_adjust(datass->size - amount, datass);
-    }
+    if (datass->size > amount) return private_f_iki_datass_adjust(datass->size - amount, datass);
 
     return private_f_iki_datass_adjust(0, datass);
   }
@@ -254,10 +247,7 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-
-    if (datass->size > amount) {
-      return private_f_iki_datass_resize(datass->size - amount, datass);
-    }
+    if (datass->size > amount) return private_f_iki_datass_resize(datass->size - amount, datass);
 
     return private_f_iki_datass_resize(0, datass);
   }
@@ -270,12 +260,12 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && datass->used + 1 > datass->size) {
+      if (datass->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = datass->used + step;
 
       if (size > F_number_t_size_unsigned_d) {
-        if (datass->used + 1 > F_number_t_size_unsigned_d) {
-          return F_status_set_error(F_array_too_large);
-        }
+        if (datass->used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
         size = F_number_t_size_unsigned_d;
       }
@@ -293,14 +283,16 @@ extern "C" {
       if (!datass) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (datass->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (datass->used + amount > datass->size) {
-      if (datass->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = datass->used + amount;
 
-      return private_f_iki_datass_resize(datass->used + amount, datass);
+      if (length > datass->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_iki_datass_resize(length, datass);
+      }
     }
 
     return F_data_not;
index aa11a698d4a3ac913bea19f46fdde705f3f603ea..5f9bf5a1d180711a900c5316b0b19867d7eaa86a 100644 (file)
@@ -8,9 +8,8 @@ extern "C" {
 #if !defined(_di_f_iki_datas_adjust_) || !defined(_di_f_iki_datas_decimate_by_)
   f_status_t private_f_iki_datas_adjust(const f_number_unsigned_t length, f_iki_datas_t *datas) {
 
-    if (datas->used + length > F_number_t_size_unsigned_d) {
-      return F_status_set_error(F_array_too_large);
-    }
+    if (datas->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+    if (datas->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     f_status_t status = F_none;
 
@@ -29,16 +28,7 @@ extern "C" {
       if (F_status_is_error(status)) return status;
     } // for
 
-    status = f_memory_adjust(datas->size, length, sizeof(f_iki_data_t), (void **) & datas->array);
-    if (F_status_is_error(status)) return status;
-
-    datas->size = length;
-
-    if (datas->used > datas->size) {
-      datas->used = length;
-    }
-
-    return F_none;
+    return f_memory_array_adjust(length, sizeof(f_iki_data_t), (void **) &datas->array, &datas->used, &datas->size);
   }
 #endif // !defined(_di_f_iki_datas_adjust_) || !defined(_di_f_iki_datas_decimate_by_)
 
@@ -128,9 +118,8 @@ extern "C" {
 #if !defined(_di_f_iki_datas_append_) || !defined(_di_f_iki_datas_decrease_by_) || !defined(_di_f_iki_datas_increase_) || !defined(_di_f_iki_datas_increase_by_) || !defined(_di_f_iki_datas_resize_)
   f_status_t private_f_iki_datas_resize(const f_number_unsigned_t length, f_iki_datas_t *datas) {
 
-    if (datas->used + length > F_number_t_size_unsigned_d) {
-      return F_status_set_error(F_array_too_large);
-    }
+    if (datas->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+    if (datas->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     f_status_t status = F_none;
 
@@ -149,16 +138,7 @@ extern "C" {
       if (F_status_is_error(status)) return status;
     } // for
 
-    status = f_memory_resize(datas->size, length, sizeof(f_iki_data_t), (void **) & datas->array);
-    if (F_status_is_error(status)) return status;
-
-    datas->size = length;
-
-    if (datas->used > datas->size) {
-      datas->used = length;
-    }
-
-    return F_none;
+    return f_memory_array_resize(length, sizeof(f_iki_data_t), (void **) &datas->array, &datas->used, &datas->size);
   }
 #endif // !defined(_di_f_iki_datas_append_) || !defined(_di_f_iki_datas_decrease_by_) || !defined(_di_f_iki_datas_increase_) || !defined(_di_f_iki_datas_increase_by_) || !defined(_di_f_iki_datas_resize_)
 
@@ -169,11 +149,8 @@ extern "C" {
 
     for (f_number_unsigned_t i = length; i < datass->size; ++i) {
 
-      status = f_memory_destroy(datass->array[i].size, sizeof(f_iki_datas_t), (void **) & datass->array[i].array);
+      status = private_f_iki_datas_adjust(0, &datass->array[i]);
       if (F_status_is_error(status)) return status;
-
-      datass->array[i].size = 0;
-      datass->array[i].used = 0;
     } // for
 
     status = f_memory_adjust(datass->size, length, sizeof(f_iki_datas_t), (void **) & datass->array);
index b0f25604ce7af3ab2e4c26f2ae34478c7c27290b..e32eadd0051e0f5b011aeade3b7d65914cb5c6aa 100644 (file)
@@ -59,8 +59,6 @@ extern "C" {
   #define macro_f_limit_sets_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_limit_sets_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_limit_sets_t_clear(sets) macro_f_memory_structure_clear(sets)
-
   #define macro_f_limit_sets_t_resize(status, sets, length) status = f_limit_sets_resize(length, &sets);
   #define macro_f_limit_sets_t_adjust(status, sets, length) status = f_limit_sets_adjust(length, &sets);
 
@@ -94,8 +92,6 @@ extern "C" {
   #define macro_f_limit_setss_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_limit_setss_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_limit_setss_t_clear(setss) macro_f_memory_structure_clear(setss);
-
   #define macro_f_limit_setss_t_resize(status, setss, length) status = f_limit_setss_resize(length, &setss);
   #define macro_f_limit_setss_t_adjust(status, setss, length) status = f_limit_setss_adjust(length, &setss);
 
index 7768e512b1bf00f9ade43f283ed991a5073aa2de..9fd7419f19ece5b897972df545dbf710420e5e31 100644 (file)
@@ -55,8 +55,6 @@ extern "C" {
   #define macro_f_limit_values_t_initialize_1(content, size, used) { array, size, used }
   #define macro_f_limit_values_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_limit_values_t_clear(values) macro_f_memory_structure_clear(values)
-
   #define macro_f_limit_values_t_resize(status, values, length) status = f_limit_values_resize(length, &values);
   #define macro_f_limit_values_t_adjust(status, values, length) status = f_limit_values_adjust(length, &values);
 
@@ -90,8 +88,6 @@ extern "C" {
   #define macro_f_limit_valuess_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_limit_valuess_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_limit_valuess_t_clear(valuess) macro_f_memory_structure_clear(valuess);
-
   #define macro_f_limit_valuess_t_resize(status, valuess, length) status = f_limit_valuess_resize(length, &valuess);
   #define macro_f_limit_valuess_t_adjust(status, valuess, length) status = f_limit_valuess_adjust(length, &valuess);
 
index b3b90453f9973ccbc436db592e15e522a3183a4f..9f1ea8e70be17ca166288a83184cbd83e08e60c4 100644 (file)
@@ -22,7 +22,6 @@
 // FLL-0 memory includes.
 #include <fll/level_0/memory/common.h>
 #include <fll/level_0/memory/array.h>
-#include <fll/level_0/memory/structure.h>
 
 #ifdef __cplusplus
 extern "C" {
index 198dceee80a125308ef312f2ff3f7fd232d56741..75a6f04d265c755531361d3f96c764efeeacafd2 100644 (file)
@@ -28,9 +28,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (*size > amount) return private_f_memory_array_adjust(*size - amount, width, array, used, size);
 
-    return private_f_memory_array_adjust(0, width, array, used, size);
+    return private_f_memory_array_adjust((*size > amount) ? *size - amount : 0, width, array, used, size);
   }
 #endif // _di_f_memory_array_decimate_by_
 
@@ -43,9 +42,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (!amount) return F_data_not;
-    if (*size > amount) return private_f_memory_array_resize(*size - amount, width, array, used, size);
 
-    return private_f_memory_array_resize(0, width, array, used, size);
+    return private_f_memory_array_resize((*size > amount) ? *size - amount : 0, width, array, used, size);
   }
 #endif // _di_f_memory_array_decrease_by_
 
@@ -58,13 +56,12 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && *used + 1 > *size) {
-      f_number_unsigned_t length = *used + step;
+      if (*used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      if (step > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      f_number_unsigned_t length = *used + step;
 
-      if (*size > F_number_t_size_unsigned_d) {
+      if (length > F_number_t_size_unsigned_d) {
         if (*used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-        if (*used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
         length = F_number_t_size_unsigned_d;
       }
@@ -84,12 +81,16 @@ extern "C" {
       if (!size) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (*used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (*used + amount > *size) {
-      if (*used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      const f_number_unsigned_t length = *used + amount;
 
-      return private_f_memory_array_resize(*used + amount, width, array, used, size);
+      if (length > *size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_memory_array_resize(length, width, array, used, size);
+      }
     }
 
     return F_data_not;
@@ -104,6 +105,7 @@ extern "C" {
       if (!size) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
+    if (*used > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
     if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     return private_f_memory_array_resize(length, width, array, used, size);
index d6e7428e61fba1cd607ef5695b0d9670bc687965..2b018a71517adf6d29dc61ae52e407e7d9673b0d 100644 (file)
@@ -42,370 +42,6 @@ extern "C" {
   #define F_memory_default_allocation_small_d 8
 #endif // _di_f_memory_default_d_
 
-/**
- * Reset a generic memory stucture to 0 (clear all values).
- *
- * This does not deallocate memory, be certain that memory is not allocated before calling this to avoid potential memory leaks.
- *
- * structure: the structure to operate on.
- */
-#ifndef _di_macro_f_memory_structure_clear_
-  #define macro_f_memory_structure_clear(structure) \
-    structure.array = 0; \
-    structure.size = 0; \
-    structure.used = 0;
-#endif // _di_macro_f_memory_structure_clear_
-
-/**
- * Resize a generic memory structure.
- *
- * status:    the status to return.
- * structure: the structure to operate on.
- * type:      the structure type.
- * length:    the new size of the array.
- */
-#ifndef _di_macro_f_memory_structure_resize_
-  #define macro_f_memory_structure_resize(status, structure, type, length) \
-    status = f_memory_structure_resize(length, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_resize_
-
-/**
- * Adjust a generic memory structure.
- *
- * status:    the status to return.
- * structure: the structure to operate on.
- * type:      the structure type.
- * length:    the new size of the array.
- */
-#ifndef _di_macro_f_memory_structure_adjust_
-  #define macro_f_memory_structure_adjust(status, structure, type, length) \
-    status = f_memory_structure_adjust(length, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_adjust_
-
-/**
- * Delete a generic memory structure.
- *
- * status:    the status to return.
- * structure: the structure to operate on.
- * type:      the structure type.
- */
-#ifndef _di_macro_f_memory_structure_delete_
-  #define macro_f_memory_structure_delete(status, structure, type) \
-    status = f_memory_structure_resize(0, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_delete_
-
-/**
- * Destroy a generic memory structure.
- *
- * status:    the status to return.
- * structure: the structure to operate on.
- * type:      the structure type.
- */
-#ifndef _di_macro_f_memory_structure_destroy_
-  #define macro_f_memory_structure_destroy(status, structure, type) \
-    status = f_memory_structure_adjust(0, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_destroy_
-
-/**
- * Delete a generic memory structure.
- *
- * structure: the structure to operate on.
- * type:      the structure type.
- */
-#ifndef _di_macro_f_memory_structure_delete_simple_
-  #define macro_f_memory_structure_delete_simple(structure, type) \
-    f_memory_structure_resize(0, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_delete_simple_
-
-/**
- * Destroy a generic memory structure.
- *
- * structure: the structure to operate on.
- * type:      the structure type.
- */
-#ifndef _di_macro_f_memory_structure_destroy_simple_
-  #define macro_f_memory_structure_destroy_simple(structure, type) \
-    f_memory_structure_adjust(0, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_destroy_simple_
-
-/**
- * Increase a generic memory structure.
- *
- * status:    The status to return.
- * step:      The allocation step.
- * structure: The structure to operate on.
- * type:      The structure type.
- */
-#ifndef _di_macro_f_memory_structure_increase_
-  #define macro_f_memory_structure_increase(status, step, structure, type) \
-    status = f_memory_structure_increase(step, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_increase_
-
-/**
- * Increase a generic memory structure by some amount.
- *
- * status:    The status to return.
- * structure: The structure to operate on.
- * type:      The structure type.
- * amount:    The amount to increase the size of the array by.
- */
-#ifndef _di_macro_f_memory_structure_increase_by_
-  #define macro_f_memory_structure_increase_by(status, structure, type, amount) \
-    status = f_memory_structure_increase_by(amount, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_increase_by_
-
-/**
- * Decrease a generic memory structure by some amount.
- *
- * status:    The status to return.
- * structure: The structure to operate on.
- * type:      The structure type.
- * amount:    The amount to decrease the size of the array by.
- */
-#ifndef _di_macro_f_memory_structure_decrease_by_
-  #define macro_f_memory_structure_decrease_by(status, structure, type, amount) \
-    status = f_memory_structure_decrease_by(amount, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_decrease_by_
-
-/**
- * Decimate a generic memory structure by some amount.
- *
- * status:    The status to return.
- * structure: The structure to operate on.
- * type:      The structure type.
- * amount:    The amount to decimate the size of the array by.
- */
-#ifndef _di_macro_f_memory_structure_decimate_by_
-  #define macro_f_memory_structure_decimate_by(status, structure, type, amount) \
-    status = f_memory_structure_decimate_by(amount, sizeof(type), (void **) &structure.array, &structure.used, &structure.size);
-#endif // _di_macro_f_memory_structure_decimate_by_
-
-/**
- * Reset a generic memory stuctures to 0 (clear all values).
- *
- * This does not deallocate memory, be certain that memory is not allocated before calling this to avoid potential memory leaks.
- *
- * structures: the structures to operate on.
- */
-#ifndef _di_macro_f_memory_structures_clear_
-  #define macro_f_memory_structures_clear(structures) \
-    structures.array = 0; \
-    structures.size = 0; \
-    structures.used = 0;
-#endif // _di_macro_f_memory_structures_clear_
-
-/**
- * Resize a generic memory structures.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- * length:         The new size of the array.
- * type_length:    The data type of the length variable type.
- */
-#ifndef _di_macro_f_memory_structures_resize_
-  #define macro_f_memory_structures_resize(status, structures, type_structure, type_structures, length, type_length) \
-    status = F_none; \
-    for (register type_length _macro__i = length; _macro__i < structures.size; ++_macro__i) { \
-      status = f_memory_structure_resize(0, sizeof(type_structure), (void **) &structures.array[_macro__i].array, &structures.array[_macro__i].used, &structures.array[_macro__i].size); \
-      if (F_status_is_error(status)) break; \
-    } \
-    if (F_status_is_error_not(status)) status = f_memory_structure_resize(0, sizeof(type_structures), (void **) &structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_resize_
-
-/**
- * Adjust a generic memory structures.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- * length:         The new size of the array.
- * type_length:    The data type of the length variable type.
- */
-#ifndef _di_macro_f_memory_structures_adjust_
-  #define macro_f_memory_structures_adjust(status, structures, type_structure, type_structures, length, type_length) \
-    status = F_none; \
-    for (register type_length _macro__i = length; _macro__i < structures.size; ++_macro__i) { \
-      status = f_memory_structure_adjust(0, sizeof(type_structure), (void **) &structures.array[_macro__i].array, &structures.array[_macro__i].used, &structures.array[_macro__i].size); \
-      if (F_status_is_error(status)) break; \
-    } \
-    if (F_status_is_error_not(status)) status = f_memory_structure_adjust(0, sizeof(type_structures), (void **) &structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_adjust_
-
-/**
- * Delete a generic memory structures.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- */
-#ifndef _di_macro_f_memory_structures_delete_
-  #define macro_f_memory_structures_delete(status, structures, type_structure, type_structures) \
-    structures.used = structures.size; \
-    while (structures.used) { \
-      --structures.used; \
-      status = f_memory_structure_resize(0, sizeof(type_structure), (void **) &structures.array[structures.used].array, &structures.array[structures.used].used, &structures.array[structures.used].size); \
-      if (F_status_is_error(status)) break; \
-    } \
-    if (F_status_is_error_not(status)) status = f_memory_structure_resize(0, sizeof(type_structures), (void **) & structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_delete_
-
-/**
- * Destroy a generic memory structures.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- */
-#ifndef _di_macro_f_memory_structures_destroy_
-  #define macro_f_memory_structures_destroy(status, structures, type_structure, type_structures) \
-    structures.used = structures.size; \
-    while (structures.used) { \
-      --structures.used; \
-      status = f_memory_structure_adjust(0, sizeof(type_structure), (void **) &structures.array[structures.used].array, &structures.array[structures.used].used, &structures.array[structures.used].size); \
-      if (F_status_is_error(status)) break; \
-    } \
-    if (F_status_is_error_not(status)) status = f_memory_structure_adjust(0, sizeof(type_structures), (void **) & structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_destroy_
-
-/**
- * Delete a generic memory structures.
- *
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- */
-#ifndef _di_macro_f_memory_structures_delete_simple_
-  #define macro_f_memory_structures_delete_simple(structures, type_structure, type_structures) \
-    structures.used = structures.size; \
-    while (structures.used) { \
-      --structures.used; \
-      f_memory_structure_resize(0, sizeof(type_structure), (void **) &structures.array[structures.used].array, &structures.array[structures.used].used, &structures.array[structures.used].size); \
-    } \
-    f_memory_structure_resize(0, sizeof(type_structures), (void **) & structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_delete_simple_
-
-/**
- * Destroy a generic memory structures.
- *
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- */
-#ifndef _di_macro_f_memory_structures_destroy_simple_
-  #define macro_f_memory_structures_destroy_simple(structures, type_structure, type_structures) \
-    structures.used = structures.size; \
-    while (structures.used) { \
-      --structures.used; \
-      f_memory_structure_adjust(0, sizeof(type_structure), (void **) &structures.array[structures.used].array, &structures.array[structures.used].used, &structures.array[structures.used].size); \
-    } \
-    f_memory_structure_adjust(0, sizeof(type_structures), (void **) & structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_destroy_simple_
-
-/**
- * Increase a generic memory structures by 1.
- *
- * This only increases if the structure.used + 1 is greater than structure.size.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stuctures: The structures type.
- * type_length:    The data type of the length variable type.
- */
-#ifndef _di_macro_f_memory_structures_increase_
-  #define macro_f_memory_structures_increase(status, structures, type_structures, type_length) \
-    status = f_memory_structure_increase(sizeof(type_structures), (void **) &structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_increase_
-
-/**
- * Increase a generic memory structures by the given amount.
- *
- * This only increases if the structure.used + amount is greater than structure.size.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stuctures: The structures type.
- * type_length:    The data type of the length variable type.
- * amount:         The amount to increase by.
- */
-#ifndef _di_macro_f_memory_structures_increase_by_
-  #define macro_f_memory_structures_increase_by(status, structures, type_structures, type_length, amount) \
-    status = f_memory_structure_increase_by(amount, sizeof(type_structures), (void **) &structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_increase_by_
-
-/**
- * Decrease a generic memory structures by the given amount.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- * type_length:    The data type of the length variable type.
- * amount:         The amount to decrease by.
- */
-#ifndef _di_macro_f_memory_structures_decrease_by_
-  #define macro_f_memory_structures_decrease_by(status, structures, type_structure, type_structures, type_length, amount) \
-    if (amount && structures.size) { \
-      macro_f_memory_structures_resize(status, structures, type_structure, type_structures, (amount < structures.size ? structures.size - amount : 0), type_length); \
-    } \
-    status = f_memory_structure_decrease_by(amount, sizeof(type_structures), (void **) &structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_decrease_by_
-
-/**
- * Decimate a generic memory structures by the given amount.
- *
- * status:         The status to return.
- * structures:     The structures to operate on.
- * type_stucture:  The structure type.
- * type_stuctures: The structures type.
- * type_length:    The data type of the length variable type.
- * amount:         The amount to decimate by.
- */
-#ifndef _di_macro_f_memory_structures_decimate_by_
-  #define macro_f_memory_structures_decimate_by(status, structures, type_structure, type_structures, type_length, amount) \
-    if (amount && structures.size) { \
-      macro_f_memory_structures_adjust(status, structures, type_structure, type_structures, (amount < structures.size ? structures.size - amount : 0), type_length); \
-    } \
-    status = f_memory_structure_decimate_by(amount, sizeof(type_structures), (void **) &structures.array, &structures.used, &structures.size);
-#endif // _di_macro_f_memory_structures_decimate_by_
-
-/**
- * Provide a macro for calling other macros for incrementing a buffer.
- *
- * If the used + step is greater than size, then increase by step_default.
- * If step_default exceeds F_number_t_size_unsigned_d, then attempt to increment by step.
- * If step exceeds F_number_t_size_unsigned_d, set status to error_too_large.
- *
- * Be sure to check size for error after calling this.
- *
- * status:          The status to return.
- * structures:      The structures to operate on.
- * step:            The step to increase by, must be less than or equal to step_default.
- * step_default:    The default step to increase by if memory allows.
- * macro_resize:    The resize structure macro to call that excepts the exact arguments: (status, structure, length).
- * error_too_large: The error status to return when F_number_t_size_unsigned_d would be exceeded.
- */
-#ifndef _di_macro_f_memory_structure_increment_
-  #define macro_f_memory_structure_increment(status, structure, step, step_default, macro_resize, error_too_large) \
-    if (structure.used + step > structure.size) { \
-      if (structure.used + step_default > F_number_t_size_unsigned_d) { \
-        if (structure.used + step > F_number_t_size_unsigned_d) { \
-          status = F_status_set_error(error_too_large); \
-        } \
-        else { \
-          macro_resize(status, structure, structure.used + step); \
-        } \
-      } \
-      else { \
-        macro_resize(status, structure, structure.size + step_default); \
-      } \
-    }
-#endif // _di_macro_f_memory_structure_increment_
-
 #ifdef __cplusplus
 } // extern "C"
 #endif
diff --git a/level_0/f_memory/c/memory/structure.c b/level_0/f_memory/c/memory/structure.c
deleted file mode 100644 (file)
index 9099b9a..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-#include "../memory.h"
-#include "../private-memory.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_f_memory_structure_adjust_
-  f_status_t f_memory_structure_adjust(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-    #ifndef _di_level_0_parameter_checking_
-      if (!type_size) return F_status_set_error(F_parameter);
-      if (!structure) return F_status_set_error(F_parameter);
-      if (!used) return F_status_set_error(F_parameter);
-      if (!size) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
-
-    // Prevent double-frees and unnecessary frees.
-    if (!*structure && !length_new || *size == length_new) return F_data_not;
-
-    return private_f_memory_structure_adjust(length_new, type_size, structure, used, size);
-  }
-#endif // _di_f_memory_structure_adjust_
-
-#ifndef _di_f_memory_structure_decimate_by_
-  f_status_t f_memory_structure_decimate_by(const f_number_unsigned_t amount, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-    #ifndef _di_level_0_parameter_checking_
-      if (!type_size) return F_status_set_error(F_parameter);
-      if (!structure) return F_status_set_error(F_parameter);
-      if (!used) return F_status_set_error(F_parameter);
-      if (!size) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
-
-    if (amount && *size) return private_f_memory_structure_adjust(amount <= *size ? *size - amount : 0, type_size, structure, used, size);
-
-    return F_data_not;
-  }
-#endif // _di_f_memory_structure_decimate_by_
-
-#ifndef _di_f_memory_structure_decrease_by_
-  f_status_t f_memory_structure_decrease_by(const f_number_unsigned_t amount, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-    #ifndef _di_level_0_parameter_checking_
-      if (!type_size) return F_status_set_error(F_parameter);
-      if (!structure) return F_status_set_error(F_parameter);
-      if (!used) return F_status_set_error(F_parameter);
-      if (!size) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
-
-    if (amount && *size) return private_f_memory_structure_resize(amount <= *size ? *size - amount : 0, type_size, structure, used, size);
-
-    return F_data_not;
-  }
-#endif // _di_f_memory_structure_decrease_by_
-
-#ifndef _di_f_memory_structure_increase_
-  f_status_t f_memory_structure_increase(const f_number_unsigned_t step, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-    #ifndef _di_level_0_parameter_checking_
-      if (!step) return F_status_set_error(F_parameter);
-      if (!type_size) return F_status_set_error(F_parameter);
-      if (!structure) return F_status_set_error(F_parameter);
-      if (!used) return F_status_set_error(F_parameter);
-      if (!size) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
-
-    if (*used + 1 > *size) {
-      f_number_unsigned_t length_new = *used + step;
-
-      if (length_new > F_number_t_size_unsigned_d) {
-        if (*used + 1 > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-        length_new = F_number_t_size_unsigned_d;
-      }
-
-      return private_f_memory_structure_resize(length_new, type_size, structure, used, size);
-    }
-
-    return F_data_not;
-  }
-#endif // _di_f_memory_structure_increase_
-
-#ifndef _di_f_memory_structure_increase_by_
-  f_status_t f_memory_structure_increase_by(const f_number_unsigned_t amount, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-    #ifndef _di_level_0_parameter_checking_
-      if (!type_size) return F_status_set_error(F_parameter);
-      if (!structure) return F_status_set_error(F_parameter);
-      if (!used) return F_status_set_error(F_parameter);
-      if (!size) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
-
-    if (amount && *used + amount > *size) {
-      if (*used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
-
-      return private_f_memory_structure_resize(*used + amount, type_size, structure, used, size);
-    }
-
-    return F_data_not;
-  }
-#endif // _di_f_memory_structure_increase_by_
-
-#ifndef _di_f_memory_structure_resize_
-  f_status_t f_memory_structure_resize(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-    #ifndef _di_level_0_parameter_checking_
-      if (!type_size) return F_status_set_error(F_parameter);
-      if (!structure) return F_status_set_error(F_parameter);
-      if (!used) return F_status_set_error(F_parameter);
-      if (!size) return F_status_set_error(F_parameter);
-    #endif // _di_level_0_parameter_checking_
-
-    // Prevent double-frees and unnecessary frees.
-    if (!*structure && !length_new || *size == length_new) return F_data_not;
-
-    return private_f_memory_structure_resize(length_new, type_size, structure, used, size);
-  }
-#endif // _di_f_memory_structure_resize_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
diff --git a/level_0/f_memory/c/memory/structure.h b/level_0/f_memory/c/memory/structure.h
deleted file mode 100644 (file)
index e4468ee..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * FLL - Level 0
- *
- * Project: Memory
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Defines memory structure data.
- *
- * This is auto-included by memory.h and should not need to be explicitly included.
- */
-#ifndef _F_memory_structure_h
-#define _F_memory_structure_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * Resize the structure.
- *
- * Memory being deleted will be wiped.
- *
- * @param length_new
- *   The new size of the structure array.
- *   Setting a length of 0 will result in the deletion (freeing) of the structure.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- *   Must be greater than 0.
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   F_none on success.
- *
- *   F_memory_not (with error bit) on allocation error.
- *
- * @see calloc()
- * @see free()
- * @see memset()
- */
-#ifndef _di_f_memory_structure_adjust_
-  extern f_status_t f_memory_structure_adjust(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size);
-#endif // _di_f_memory_structure_adjust_
-
-/**
- * Resize the structure to a smaller size, by the given amount.
- *
- * This will not shrink the size to less than 0.
- * Memory being deleted will be wiped.
- *
- * @param amount
- *   A positive number representing how much to decimate the size by.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- *   Must be greater than 0.
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to decimate size (amount = 0 or size = 0).
- *
- *   F_memory_not (with error bit) on out of memory.
- *
- * @see calloc()
- * @see free()
- * @see memset()
- */
-#ifndef _di_f_memory_structure_decimate_by_
-  extern f_status_t f_memory_structure_decimate_by(const f_number_unsigned_t amount, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size);
-#endif // _di_f_memory_structure_decimate_by_
-
-/**
- * Resize the structure to a smaller size, by the given amount.
- *
- * This will not shrink the size to less than 0.
- * Memory being deleted will not be wiped.
- *
- * @param amount
- *   A positive number representing how much to decrease by.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- *   Must be greater than 0.
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to decrease size (amount = 0 or size = 0).
- *
- *   F_memory_not (with error bit) on allocation error.
- *
- * @see calloc()
- * @see free()
- * @see memset()
- */
-#ifndef _di_f_memory_structure_decrease_by_
-  extern f_status_t f_memory_structure_decrease_by(const f_number_unsigned_t amount, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size);
-#endif // _di_f_memory_structure_decrease_by_
-
-/**
- * Increase the size of the structure, but only if necessary.
- *
- * If the given length is too large for the buffer, then attempt to set max buffer size (F_number_t_size_unsigned_d).
- * If already set to the maximum buffer size, then the resize will fail.
- *
- * @param step
- *   The allocation step to use.
- *   Must be greater than 0.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- *   Must be greater than 0.
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (used + 1 <= size).
- *
- *   F_array_too_large (with error bit) if the new array length is too large.
- *   F_memory_not (with error bit) on allocation error.
- *
- * @see calloc()
- * @see free()
- * @see memset()
- */
-#ifndef _di_f_memory_structure_increase_
-  extern f_status_t f_memory_structure_increase(const f_number_unsigned_t step, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size);
-#endif // _di_f_memory_structure_increase_
-
-/**
- * Resize the structure to a larger size.
- *
- * This will resize making the array larger based on the given length.
- * If the given length is too large for the buffer, then attempt to set max buffer size (F_number_t_size_unsigned_d).
- * If already set to the maximum buffer size, then the resize will fail.
- *
- * @param amount
- *   A positive number representing how much to increase the size by.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- *   Must be greater than 0.
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   F_none on success.
- *   F_data_not on success, but there is no reason to increase size (amount = 0 or used + 1 <= size).
- *
- *   F_array_too_large (with error bit) if the new array length is too large.
- *   F_memory_not (with error bit) on allocation error.
- *
- * @see calloc()
- * @see free()
- * @see memset()
- */
-#ifndef _di_f_memory_structure_increase_by_
-  extern f_status_t f_memory_structure_increase_by(const f_number_unsigned_t amount, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size);
-#endif // _di_f_memory_structure_increase_by_
-
-/**
- * Resize the structure.
- *
- * Memory being deleted will not be wiped.
- *
- * @param length_new
- *   The new size of the structure array.
- *   Setting a length of 0 will result in the deletion (freeing) of the structure.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   F_none on success.
- *
- *   F_memory_not (with error bit) on allocation error.
- *
- * @see calloc()
- * @see free()
- * @see memset()
- */
-#ifndef _di_f_memory_structure_resize_
-  extern f_status_t f_memory_structure_resize(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size);
-#endif // _di_f_memory_structure_resize_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _F_memory_structure_h
index aed97c135c821c5de5e997730f3797555b63ce4d..f48de2ecdcf226ac9a3d47e3a4fc2b844e3d58d7 100644 (file)
@@ -5,7 +5,7 @@
 extern "C" {
 #endif
 
-#if !defined(_di_f_memory_adjust_) || !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
+#if !defined(_di_f_memory_adjust_) || defined(_f_memory_FORCE_secure_memory_)
   f_status_t private_f_memory_adjust(const size_t length_old, const size_t length_new, const size_t type_size, void ** const pointer) {
 
     // When old length is 0 and the pointer is not NULL, then consider this pointer stale and reset it to NULL.
@@ -58,9 +58,9 @@ extern "C" {
 
     return F_status_set_error(F_memory_not);
   }
-#endif // !defined(_di_f_memory_adjust_) || !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
+#endif // !defined(_di_f_memory_adjust_) || defined(_f_memory_FORCE_secure_memory_)
 
-#if !defined(_di_f_memory_resize_) || !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
+#if !defined(_di_f_memory_resize_) || defined(_f_memory_FORCE_fast_memory_)
   f_status_t private_f_memory_resize(const size_t length_old, const size_t length_new, const size_t type_size, void ** const pointer) {
 
     // When old length is 0 and the pointer is not NULL, then consider this pointer stale and reset it to NULL.
@@ -104,41 +104,7 @@ extern "C" {
 
     return F_status_set_error(F_memory_not);
   }
-#endif // !defined(_di_f_memory_resize_) || !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
-
-#if !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
-  f_status_t private_f_memory_structure_adjust(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-
-    const f_status_t status = private_f_memory_adjust(*size, length_new, type_size, structure);
-
-    if (F_status_is_error_not(status)) {
-      *size = length_new;
-
-      if (*used > *size) {
-        *used = *size;
-      }
-    }
-
-    return status;
-  }
-#endif // !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
-
-#if !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
-  f_status_t private_f_memory_structure_resize(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) {
-
-    const f_status_t status = private_f_memory_resize(*size, length_new, type_size, structure);
-
-    if (F_status_is_error_not(status)) {
-      *size = length_new;
-
-      if (*used > *size) {
-        *used = *size;
-      }
-    }
-
-    return status;
-  }
-#endif // !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
+#endif // !!defined(_di_f_memory_resize_) || defined(_f_memory_FORCE_fast_memory_)
 
 #ifdef __cplusplus
 } // extern "C"
index e5238109ef4f55d44b2d3e1efea75febb2faef04..1ffabaad8709120480ae42017a8f5f71e1c58082 100644 (file)
@@ -42,12 +42,11 @@ extern "C" {
  * @see memset()
  *
  * @see f_memory_adjust()
- * @see f_memory_structure_adjust()
- * @see f_memory_structure_decimate_by()
+ * @see f_memory_resize()
  */
-#if !defined(_di_f_memory_adjust_) || !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
+#if !defined(_di_f_memory_adjust_) || defined(_f_memory_FORCE_secure_memory_)
   extern f_status_t private_f_memory_adjust(const size_t length_old, const size_t length_new, const size_t type_size, void ** const pointer) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_memory_adjust_) || !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
+#endif // !defined(_di_f_memory_adjust_) || defined(_f_memory_FORCE_secure_memory_)
 
 /**
  * Private implementation for resizing.
@@ -75,81 +74,12 @@ extern "C" {
  * @see free()
  * @see memset()
  *
+ * @see f_memory_adjust()
  * @see f_memory_resize()
- * @see f_memory_structure_decrease_by()
- * @see f_memory_structure_increase()
- * @see f_memory_structure_increase_by()
- * @see f_memory_structure_resize()
- *
- * @see private_f_memory_structure_resize()
  */
-#if !defined(_di_f_memory_resize_) || !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
+#if !defined(_di_f_memory_resize_) || defined(_f_memory_FORCE_fast_memory_)
   extern f_status_t private_f_memory_resize(const size_t length_old, const size_t length_new, const size_t type_size, void ** const pointer) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_memory_resize_) || !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
-
-/**
- * Private implementation for resizing a structure.
- *
- * Intended to be shared to each of the different implementation variations.
- *
- * @param length_new
- *   The new size of the structure array.
- *   Setting a length of 0 will result in the deletion (freeing) of the structure.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   Return from: private_f_memory_adjust().
- *
- *   Errors (with error bit) from: private_f_memory_adjust().
- *
- * @see f_memory_structure_adjust()
- * @see f_memory_structure_decimate_by()
- *
- * @see private_f_memory_adjust()
- */
-#if !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
-  extern f_status_t private_f_memory_structure_adjust(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) F_attribute_visibility_internal_d;
-#endif // !defined(_di_f_memory_structure_adjust_) || !defined(_di_f_memory_structure_decimate_by_)
-
-/**
- * Private implementation for resizing a structure.
- *
- * Intended to be shared to each of the different implementation variations.
- *
- * @param length_new
- *   The new size of the structure array.
- *   Setting a length of 0 will result in the deletion (freeing) of the structure.
- * @param type_size
- *   The size of the structure type (such as: sizeof(structure_size)).
- * @param structure
- *   The structure to delete.
- * @param used
- *   The amount of data used by the structure.
- * @param size
- *   The amount of data allocated to the structure.
- *
- * @return
- *   Return from: private_f_memory_resize().
- *
- *   Errors (with error bit) from: private_f_memory_structure_resize().
- *
- * @see f_memory_structure_decrease_by()
- * @see f_memory_structure_increase()
- * @see f_memory_structure_increase_by()
- * @see f_memory_structure_resize()
- *
- * @see private_f_memory_resize()
- */
-#if !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
-  extern f_status_t private_f_memory_structure_resize(const size_t length_new, const size_t type_size, void ** const structure, f_number_unsigned_t * const used, f_number_unsigned_t * const size) F_attribute_visibility_internal_d;
-#endif // !defined(_di_memory_structure_decrease_by_) || !defined(_di_memory_structure_increase_) || !defined(_di_memory_structure_increase_by_) || !defined(_di_f_memory_structure_resize_)
+#endif // !defined(_di_f_memory_resize_) || defined(_f_memory_FORCE_fast_memory_)
 
 #ifdef __cplusplus
 } // extern "C"
index 55426ad48f1d6b6e476380702c79838925e4e86f..e073e53492b6918b1f10d38e1af7bd9869598a38 100644 (file)
@@ -31,10 +31,10 @@ build_language c
 
 build_libraries -lc
 
-build_sources_library memory.c memory/array.c memory/structure.c
+build_sources_library memory.c memory/array.c
 build_sources_library private-memory.c memory/private-array.c
 
-build_sources_headers memory.h memory/array.h memory/common.h memory/structure.h
+build_sources_headers memory.h memory/array.h memory/common.h
 
 build_script yes
 build_shared yes
index 777124b6a05db6d654647987ddd0d28afc270a71..924016fd5034c6c9114ecfde18826bc33eb16f9b 100644 (file)
@@ -49,11 +49,13 @@ void test__f_memory_array_increase__returns_array_too_large(void **state) {
   const f_number_unsigned_t length = F_number_t_size_unsigned_d + 1;
   test_memory_array_t data = test_memory_array_t_initialize;
 
+  data.used = F_number_t_size_unsigned_d;
+
   {
     const f_status_t status = f_memory_array_increase(length, sizeof(int), (void **) &data.array, &data.used, &data.size);
 
     assert_int_equal(status, F_status_set_error(F_array_too_large));
-    assert_int_equal(data.used, 0);
+    assert_int_equal(data.used, F_number_t_size_unsigned_d);
     assert_int_equal(data.size, 0);
   }
 }
index a06e2b4d2cf9479e43ac73e5f502adaa324d09d9..c3a399d3fcebae8489ec08003bddb1929b17e10f 100644 (file)
@@ -105,12 +105,16 @@ extern "C" {
       if (!dynamics) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (dynamics->used + amount > dynamics->size) {
-      if (dynamics->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+    if (amount) {
+      if (dynamics->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+      const f_number_unsigned_t length = dynamics->used + amount;
 
-      return private_f_string_dynamics_resize(dynamics->used + amount, dynamics);
+      if (length > dynamics->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_dynamics_resize(dynamics->used + amount, dynamics);
+      }
     }
 
     return F_data_not;
index 4b881f60cbe48ba33888aac823289a2a35bc493f..3bd0565e1b9d27a4df238beb8e085b63ae1afda8 100644 (file)
@@ -139,14 +139,16 @@ extern "C" {
       if (!dynamicss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (dynamicss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (dynamicss->used + amount > dynamicss->size) {
-      if (dynamicss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = dynamicss->used + amount;
 
-      return private_f_string_dynamicss_resize(dynamicss->used + amount, dynamicss);
+      if (length > dynamicss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_dynamicss_resize(dynamicss->used + amount, dynamicss);
+      }
     }
 
     return F_data_not;
index 2f3a4dd956ac367cf40447b59eae4fa6e40bd308..4e54d4134aae8853c58ec2c1756c3ee2dea8c594 100644 (file)
@@ -124,14 +124,16 @@ extern "C" {
       if (!map_multis) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (map_multis->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (map_multis->used + amount > map_multis->size) {
-      if (map_multis->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = map_multis->used + amount;
 
-      return private_f_string_map_multis_resize(map_multis->used + amount, map_multis);
+      if (length > map_multis->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_map_multis_resize(length, map_multis);
+      }
     }
 
     return F_data_not;
index bd99ea82d140e0a24c8c98043027c19a6b0f6ea1..4fde6a5bd7fd6578526d99d7ddd44c05e1de64ca 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_map_multis_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_map_multis_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_map_multis_t_clear(map_multis) macro_f_memory_structure_clear(map_multis)
-
   #define macro_f_string_map_multis_t_resize(status, map_multis, length) status = f_string_map_multis_resize(length, &map_multis);
   #define macro_f_string_map_multis_t_adjust(status, map_multis, length) status = f_string_map_multis_adjust(length, &map_multis);
 
index 229717514f8e293a2b76befc5da07441845f31e2..e269af6aa380487f6cfaf95fdf874300c36567c2 100644 (file)
@@ -138,14 +138,16 @@ extern "C" {
       if (!map_multiss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (map_multiss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (map_multiss->used + amount > map_multiss->size) {
-      if (map_multiss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = map_multiss->used + amount;
 
-      return private_f_string_map_multiss_resize(map_multiss->used + amount, map_multiss);
+      if (length > map_multiss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_map_multiss_resize(length, map_multiss);
+      }
     }
 
     return F_data_not;
index de2b733167c0a9f75acc03d313cf63422088a060..9ebd77d248ac4da72c3724b41f9363029e78bd5d 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_map_multiss_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_map_multiss_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_map_multiss_t_clear(map_multis) macro_f_memory_structure_clear(map_multis)
-
   #define macro_f_string_map_multiss_t_resize(status, map_multis, length) status = f_string_map_multiss_resize(length, &map_multis);
   #define macro_f_string_map_multiss_t_adjust(status, map_multis, length) status = f_string_map_multiss_adjust(length, &map_multis);
 
index dac763da9f8b498396aed3a0850c7d3755fb7f0b..93324e895000195b84194263a755a855a8810d24 100644 (file)
@@ -122,14 +122,16 @@ extern "C" {
       if (!maps) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (maps->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (maps->used + amount > maps->size) {
-      if (maps->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = maps->used + amount;
 
-      return private_f_string_maps_resize(maps->used + amount, maps);
+      if (length > maps->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_maps_resize(length, maps);
+      }
     }
 
     return F_data_not;
index 36f7c13759191eb8667b73d0e0b5fa5995d8f67d..c8dc1fdc3102b27e1248de9bf8b917a8112fc4c9 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_maps_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_maps_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_maps_t_clear(maps) macro_f_memory_structure_clear(maps)
-
   #define macro_f_string_maps_t_resize(status, maps, length) status = f_string_maps_resize(length, &maps);
   #define macro_f_string_maps_t_adjust(status, maps, length) status = f_string_maps_adjust(length, &maps);
 
index ae3d40f0f8f85665a0198dbf180420e1568ee7fb..ddd38247f6adbf6537b91dc55682da540c1b44d3 100644 (file)
@@ -136,14 +136,16 @@ extern "C" {
       if (!mapss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (mapss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (mapss->used + amount > mapss->size) {
-      if (mapss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = mapss->used + amount;
 
-      return private_f_string_mapss_resize(mapss->used + amount, mapss);
+      if (length > mapss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_mapss_resize(length, mapss);
+      }
     }
 
     return F_data_not;
index 45378e12da9960ab4151e85cea849d37556b4751..563bf4722acfc7cd24d23042738b99013e4e930d 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_mapss_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_mapss_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_mapss_t_clear(maps) macro_f_memory_structure_clear(maps)
-
   #define macro_f_string_mapss_t_resize(status, maps, length) status = f_string_mapss_resize(length, &maps);
   #define macro_f_string_mapss_t_adjust(status, maps, length) status = f_string_mapss_adjust(length, &maps);
 
index f2542fd2efca5acee9732893326c72bca6fa8372..7bb7cbf9e69d942b3d1446da3172c4eea6a1051e 100644 (file)
@@ -25,12 +25,12 @@ extern "C" {
 #if !defined(_di_f_string_append_) || !defined(_di_f_string_append_assure_) || !defined(_di_f_string_append_mash_) || !defined(_di_f_string_append_nulless_) || !defined(_di_f_string_dynamic_append_) || !defined(_di_f_string_dynamic_append_assure_) || !defined(_di_f_string_dynamic_append_nulless_) || !defined(_di_f_string_dynamic_increase_by_) || !defined(_di_f_string_dynamic_mash_) || !defined(_di_f_string_dynamic_mash_nulless_) || !defined(_di_f_string_dynamic_partial_append_) || !defined(_di_f_string_dynamic_partial_append_assure_) || !defined(_di_f_string_dynamic_partial_mash_) || !defined(_di_f_string_dynamic_prepend_) || !defined(_di_f_string_dynamic_prepend_nulless_) || !defined(_di_f_string_dynamics_append_) || !defined(_di_f_string_map_multis_append_) || !defined(_di_f_string_mash_) || !defined(_di_f_string_mash_nulless_) || !defined(_di_f_string_maps_append_) || !defined(_di_f_string_prepend_) || !defined(_di_f_string_prepend_nulless_) || !defined(_di_f_string_triples_append_)
   f_status_t private_f_string_dynamic_increase_by(const f_number_unsigned_t amount, f_string_dynamic_t * const dynamic) {
 
-    if (dynamic->used + amount > dynamic->size) {
-      if (dynamic->used + amount > F_string_t_size_d) {
-        return F_status_set_error(F_string_too_large);
-      }
+    const f_number_unsigned_t length = dynamic->used + amount;
 
-      return private_f_string_dynamic_resize(dynamic->used + amount, dynamic);
+    if (length > dynamic->size) {
+      if (length > F_string_t_size_d) return F_status_set_error(F_string_too_large);
+
+      return private_f_string_dynamic_resize(length, dynamic);
     }
 
     return F_data_not;
index 26552fc7c73af5ae79e0f1915adfcdc13a3cb166..f0c065955e4ed1b8c847f440f77f83966bc77bcc 100644 (file)
@@ -10,7 +10,7 @@ extern "C" {
 #if !defined(_di_f_string_dynamics_adjust_) || !defined(_di_f_string_dynamics_append_) || !defined(_di_f_string_dynamics_decimate_by_) || !defined(_di_f_string_map_multis_adjust_) || !defined(_di_f_string_map_multis_append_)
   f_status_t private_f_string_dynamics_adjust(const f_number_unsigned_t length, f_string_dynamics_t * const dynamics) {
 
-    if (dynamics->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+    if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     f_status_t status = F_none;
 
@@ -83,7 +83,7 @@ extern "C" {
 #if !defined(_di_f_string_dynamics_decrease_by_) || !defined(_di_f_string_dynamics_increase_) || !defined(_di_f_string_dynamics_increase_by_) || !defined(f_string_dynamics_resize) || !defined(_di_f_string_map_multis_append_) || !defined(_di_f_string_map_multis_append_all_) || !defined(_di_f_string_map_multis_decrease_by_) || !defined(_di_f_string_map_multis_increase_) || !defined(_di_f_string_map_multis_increase_by_) || !defined(_di_f_string_map_multis_resize_) || !defined(_di_f_string_map_multiss_append_) || !defined(_di_f_string_map_multiss_append_all_) || !defined(_di_f_string_map_multiss_decrease_by_) || !defined(_di_f_string_map_multiss_increase_) || !defined(_di_f_string_map_multiss_increase_by_)
   f_status_t private_f_string_dynamics_resize(const f_number_unsigned_t length, f_string_dynamics_t * const dynamics) {
 
-    if (dynamics->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+    if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     f_status_t status = F_none;
 
index e36b7bb1b64f962b8d2ff61290ab678da573d423..76374c9d274f301c7c32c3aff07663e9582f2187 100644 (file)
@@ -11,7 +11,7 @@ extern "C" {
 #if !defined(_di_f_string_dynamicss_adjust_) || !defined(_di_f_string_dynamicss_append_) || !defined(_di_f_string_dynamicss_decimate_by_) || !defined(_di_f_string_map_multis_adjust_) || !defined(_di_f_string_map_multis_append_)
   f_status_t private_f_string_dynamicss_adjust(const f_number_unsigned_t length, f_string_dynamicss_t * const dynamicss) {
 
-    if (dynamicss->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+    if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     f_status_t status = F_none;
 
@@ -37,7 +37,7 @@ extern "C" {
 #if !defined(_di_f_string_dynamicss_decrease_by_) || !defined(_di_f_string_dynamicss_increase_) || !defined(_di_f_string_dynamicss_increase_by_) || !defined(_di_f_string_dynamicss_append_all_) || !defined(_di_f_string_map_multis_append_all_)
   f_status_t private_f_string_dynamicss_resize(const f_number_unsigned_t length, f_string_dynamicss_t * const dynamicss) {
 
-    if (dynamicss->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+    if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     f_status_t status = F_none;
 
index a80205045bfddd8e1dbbcb49634fdecba20295cf..0c9289e667110d2edb161234f119f7e78882a5ea 100644 (file)
@@ -108,14 +108,16 @@ extern "C" {
       if (!quantitys) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (quantitys->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (quantitys->used + amount > quantitys->size) {
-      if (quantitys->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = quantitys->used + amount;
 
-      return private_f_string_quantitys_resize(quantitys->used + amount, quantitys);
+      if (length > quantitys->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_quantitys_resize(length, quantitys);
+      }
     }
 
     return F_data_not;
index b7fe955c1b7fb51b2dbe8e659b34c7ef1e5cb228..d717b7232aac4c5dcdf4a15b9d80ca83a18d2ed5 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_quantitys_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_quantitys_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_quantitys_t_clear(quantitys) macro_f_memory_structure_clear(quantitys)
-
   #define macro_f_string_quantitys_t_resize(status, quantitys, length) status = f_string_quantitys_resize(length, &quantitys);
   #define macro_f_string_quantitys_t_adjust(status, quantitys, length) status = f_string_quantitys_adjust(length, &quantitys);
 
index 31137d5595eb8a1d527b7a9e2dc96d7ec99157be..261acb2a7bbef8ccd6f8f94695c89915f47aa095 100644 (file)
@@ -136,14 +136,16 @@ extern "C" {
       if (!quantityss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (quantityss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (quantityss->used + amount > quantityss->size) {
-      if (quantityss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = quantityss->used + amount;
 
-      return private_f_string_quantityss_resize(quantityss->used + amount, quantityss);
+      if (length > quantityss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_quantityss_resize(length, quantityss);
+      }
     }
 
     return F_data_not;
index 37be263cde58c5a1a4e1970f5a2a256b8c03998e..19678ca9f2849c79450f0ba0189c2d23510469e1 100644 (file)
@@ -119,14 +119,16 @@ extern "C" {
       if (!ranges) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (ranges->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (ranges->used + amount > ranges->size) {
-      if (ranges->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = ranges->used + amount;
 
-      return private_f_string_ranges_resize(ranges->used + amount, ranges);
+      if (length > ranges->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_ranges_resize(length, ranges);
+      }
     }
 
     return F_data_not;
index de3c0e99c828fb6632473e6cff559ef83ce96d91..47640ad36d7d43f12c701a80c493aaf92070b13b 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_ranges_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_ranges_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_ranges_t_clear(ranges) macro_f_memory_structure_clear(ranges)
-
   #define macro_f_string_ranges_t_resize(status, ranges, length) status = f_string_ranges_resize(length, &ranges);
   #define macro_f_string_ranges_t_adjust(status, ranges, length) status = f_string_ranges_adjust(length, &ranges);
 
index 22c77625180513ec51ee7fa05db9fc5373f34e45..026da0b4b6d6ff35f13bce4954671b78ec5b1106 100644 (file)
@@ -136,14 +136,16 @@ extern "C" {
       if (!rangess) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (rangess->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (rangess->used + amount > rangess->size) {
-      if (rangess->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = rangess->used + amount;
 
-      return private_f_string_rangess_resize(rangess->used + amount, rangess);
+      if (length > rangess->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_rangess_resize(length, rangess);
+      }
     }
 
     return F_data_not;
index a63a20bb2dcbebbb9c5dde3bbe1d1c5bc50d163a..c65e00bcf6d8fa4bb0bc518b93c5130ebfd5f059 100644 (file)
@@ -155,14 +155,16 @@ extern "C" {
       if (!triples) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (triples->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (triples->used + amount > triples->size) {
-      if (triples->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = triples->used + amount;
 
-      return private_f_string_triples_resize(triples->used + amount, triples);
+      if (length > triples->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_triples_resize(length, triples);
+      }
     }
 
     return F_data_not;
index 9cfb7affbb1015de0371a1dc978547c1877c16bb..c5a3a0cbffa119c9d911969fe36568e1aae70d39 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_triples_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_triples_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_triples_t_clear(triples) macro_f_memory_structure_clear(triples)
-
   #define macro_f_string_triples_t_resize(status, triples, length) status = f_string_triples_resize(length, &triples);
   #define macro_f_string_triples_t_adjust(status, triples, length) status = f_string_triples_adjust(length, &triples);
 
index 542361a5539f155e7b340aef4e092f808a069d60..d1cee998dd23c961eeb99e0aef536d3c3ecf0f5b 100644 (file)
@@ -136,14 +136,16 @@ extern "C" {
       if (!tripless) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (tripless->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (tripless->used + amount > tripless->size) {
-      if (tripless->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = tripless->used + amount;
 
-      return private_f_string_tripless_resize(tripless->used + amount, tripless);
+      if (length > tripless->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_string_tripless_resize(length, tripless);
+      }
     }
 
     return F_data_not;
index 4f5ca5d15c5ef39f03047468e845b2134ea7329e..c2f6a9d964f777d5a717b31f547b8c621334ef0b 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_string_tripless_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_string_tripless_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_string_tripless_t_clear(tripless) macro_f_memory_structure_clear(tripless)
-
   #define macro_f_string_tripless_t_resize(status, tripless, length) status = f_string_tripless_resize(length, &tripless);
   #define macro_f_string_tripless_t_adjust(status, tripless, length) status = f_string_tripless_adjust(length, &tripless);
 
index df1dadcc6d5ca61c8c2642763b5d5e55d6b127e9..c31f3677657e50b8cbf13f22cff3c8a3e3c5ecfd 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!attributes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (attributes->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (attributes->used + amount > attributes->size) {
-      if (attributes->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = attributes->used + amount;
 
-      return private_f_thread_attributes_resize(attributes->used + amount, attributes);
+      if (length > attributes->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_attributes_resize(length, attributes);
+      }
     }
 
     return F_data_not;
index f1b35862f44330e8ef55882221e430941e31aec0..64f47d7ca385926503b2242172faac332f39a28f 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_attributes_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_attributes_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_attributes_t_clear(attributes) macro_f_memory_structure_clear(attributes)
-
   #define macro_f_thread_attributes_t_resize(status, attributes, length) status = f_thread_attributes_resize(length, &attributes);
   #define macro_f_thread_attributes_t_adjust(status, attributes, length) status = f_thread_attributes_adjust(length, &attributes);
 
index c2aa4b84df8b23949c97fc5c9f284b9483c02def..cbae0f3f66c13257e719c78361396bfe87d2073a 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!barriers) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (barriers->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (barriers->used + amount > barriers->size) {
-      if (barriers->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = barriers->used + amount;
 
-      return private_f_thread_barriers_resize(barriers->used + amount, barriers);
+      if (length > barriers->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_barriers_resize(barriers->used + amount, barriers);
+      }
     }
 
     return F_data_not;
index af2e66cb827f6383a92697463956a2e1dd7e3197..cdf9fd38c55fac32fb9ddb2c35d4983e82749762 100644 (file)
@@ -52,8 +52,6 @@ extern "C" {
   #define macro_f_thread_barriers_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_barriers_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_barriers_t_clear(barriers) macro_f_memory_structure_clear(barriers)
-
   #define macro_f_thread_barriers_t_resize(status, barriers, length) status = f_thread_barriers_resize(length, &barriers);
   #define macro_f_thread_barriers_t_adjust(status, barriers, length) status = f_thread_barriers_adjust(length, &barriers);
 
index 2f9a15198995c8f159a6901e624e9aa650b08c17..467a8b99d7573418c99f0662fe32dfcf739df3ec 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!attributes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (attributes->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (attributes->used + amount > attributes->size) {
-      if (attributes->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = attributes->used + amount;
 
-      return private_f_thread_barrier_attributes_resize(attributes->used + amount, attributes);
+      if (length > attributes->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_barrier_attributes_resize(attributes->used + amount, attributes);
+      }
     }
 
     return F_data_not;
index faecf6fb0a0c1766455684540d06f2f1c187cad6..8a53e8ed4bf6cf94aa69395b107704d1e73f77d1 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_barrier_attributes_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_barrier_attributes_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_barrier_attributes_t_clear(barrier_attributes) macro_f_memory_structure_clear(barrier_attributes)
-
   #define macro_f_thread_barrier_attributes_t_resize(status, barrier_attributes, length) status = f_thread_barrier_attributes_resize(length, &barrier_attributes);
   #define macro_f_thread_barrier_attributes_t_adjust(status, barrier_attributes, length) status = f_thread_barrier_attributes_adjust(length, &barrier_attributes);
 
index 5600e6508e0000c15555b01e3ad501d7c772939a..3087bed2565da1b944de17a848261be0b712c080 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!conditions) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (conditions->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (conditions->used + amount > conditions->size) {
-      if (conditions->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = conditions->used + amount;
 
-      return private_f_thread_conditions_resize(conditions->used + amount, conditions);
+      if (length > conditions->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_conditions_resize(conditions->used + amount, conditions);
+      }
     }
 
     return F_data_not;
index 457f9e6e8b2f32b9c25adf5907b7af39de2b80fd..b7bee62a1b260b89e2d435552a0a722d75e4925d 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_conditions_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_conditions_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_conditions_t_clear(conditions) macro_f_memory_structure_clear(conditions)
-
   #define macro_f_thread_conditions_t_resize(status, conditions, length) status = f_thread_conditions_resize(length, &conditions);
   #define macro_f_thread_conditions_t_adjust(status, conditions, length) status = f_thread_conditions_adjust(length, &conditions);
 
index e6277d9e74620ba25fcb729be41d84a6cf668ad3..2e01272e54402ef344658d1fce4a242c00a3ebaf 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!attributes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (attributes->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (attributes->used + amount > attributes->size) {
-      if (attributes->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = attributes->used + amount;
 
-      return private_f_thread_condition_attributes_resize(attributes->used + amount, attributes);
+      if (length > attributes->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_condition_attributes_resize(attributes->used + amount, attributes);
+      }
     }
 
     return F_data_not;
index 79e7b04a991f6e221b871b3bfad51088fb2a0545..f25bef835ed8cd1ef474c68dd3ed30b29ebf8176 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_condition_attributes_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_condition_attributes_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_condition_attributes_t_clear(attributes) macro_f_memory_structure_clear(attributes)
-
   #define macro_f_thread_condition_attributes_t_resize(status, attributes, length) status = f_thread_condition_attributes_resize(length, &attributes);
   #define macro_f_thread_condition_attributes_t_adjust(status, attributes, length) status = f_thread_condition_attributes_adjust(length, &attributes);
 
index 0fcb7cdce84bfbef698b87dce429752879952406..f998aabeedd8e5c1d73e799062f0e38b83d80a55 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!ids) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (ids->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (ids->used + amount > ids->size) {
-      if (ids->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = ids->used + amount;
 
-      return private_f_thread_ids_resize(ids->used + amount, ids);
+      if (length > ids->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_ids_resize(length, ids);
+      }
     }
 
     return F_data_not;
index 14dfc5190cca2da8fec91a0017d778135b9aced7..a252cd7988afc11da45479b4eb0d359aada27216 100644 (file)
@@ -48,8 +48,6 @@ extern "C" {
   #define macro_f_thread_ids_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_ids_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_ids_t_clear(attributes) macro_f_memory_structure_clear(attributes)
-
   #define macro_f_thread_ids_t_resize(status, attributes, length) status = f_thread_ids_resize(length, &attributes);
   #define macro_f_thread_ids_t_adjust(status, attributes, length) status = f_thread_ids_adjust(length, &attributes);
 
index d5844b06e3491701971845ba0099d4f4707cfa0f..841c8f2b63b66645c632e0ef756530459c81318c 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!keys) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (keys->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (keys->used + amount > keys->size) {
-      if (keys->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = keys->used + amount;
 
-      return private_f_thread_keys_resize(keys->used + amount, keys);
+      if (length > keys->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_keys_resize(length, keys);
+      }
     }
 
     return F_data_not;
index 86198695a0485f7ae3847d778ddf55950037f268..334b5c18608c4402a703244ef632e75886373998 100644 (file)
@@ -52,8 +52,6 @@ extern "C" {
   #define macro_f_thread_keys_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_keys_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_keys_t_clear(keys) macro_f_memory_structure_clear(keys)
-
   #define macro_f_thread_keys_t_resize(status, keys, length) status = f_thread_keys_resize(length, &keys);
   #define macro_f_thread_keys_t_adjust(status, keys, length) status = f_thread_keys_adjust(length, &keys);
 
index db7dc8ca33fdf40f4a10c4a78ffcda433ef37f27..d09388a21baba773b8e273847177f5df840ab879 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!locks) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (locks->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (locks->used + amount > locks->size) {
-      if (locks->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = locks->used + amount;
 
-      return private_f_thread_locks_resize(locks->used + amount, locks);
+      if (length > locks->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_locks_resize(length, locks);
+      }
     }
 
     return F_data_not;
index da4d5ce3e55a0c577a007c2c729acdcdf152d6a0..f27ff8703febfaba06a2b004cc0067ea5926e263 100644 (file)
@@ -53,16 +53,16 @@ extern "C" {
   #define macro_f_thread_locks_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_locks_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_locks_t_resize(status, locks, length) macro_f_memory_structure_resize(status, locks, f_thread_lock_t, length)
-  #define macro_f_thread_locks_t_adjust(status, locks, length) macro_f_memory_structure_adjust(status, locks, f_thread_lock_t, length)
+  #define macro_f_thread_locks_t_adjust(status, locks, length) status = f_memory_array_adjust(length, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
+  #define macro_f_thread_locks_t_resize(status, locks, length) status = f_memory_array_resize(length, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
 
-  #define macro_f_thread_locks_t_delete_simple(locks)  macro_f_memory_structure_delete_simple(locks, f_thread_lock_t)
-  #define macro_f_thread_locks_t_destroy_simple(locks) macro_f_memory_structure_destroy_simple(locks, f_thread_lock_t)
+  #define macro_f_thread_locks_t_delete_simple(locks)  f_memory_array_resize(0, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
+  #define macro_f_thread_locks_t_destroy_simple(locks) f_memory_array_adjust(0, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
 
-  #define macro_f_thread_locks_t_increase(status, step, locks)      macro_f_memory_structure_increase(status, step, locks, f_thread_lock_t)
-  #define macro_f_thread_locks_t_increase_by(status, locks, amount) macro_f_memory_structure_increase_by(status, locks, f_thread_lock_t, amount)
-  #define macro_f_thread_locks_t_decrease_by(status, locks, amount) macro_f_memory_structure_decrease_by(status, locks, f_thread_lock_t, amount)
-  #define macro_f_thread_locks_t_decimate_by(status, locks, amount) macro_f_memory_structure_decimate_by(status, locks, f_thread_lock_t, amount)
+  #define macro_f_thread_locks_t_increase(status, step, locks)      status = f_memory_array_increase(step, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
+  #define macro_f_thread_locks_t_increase_by(status, locks, amount) status = f_memory_array_increase_by(amount, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
+  #define macro_f_thread_locks_t_decrease_by(status, locks, amount) status = f_memory_array_decrease_by(amount, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
+  #define macro_f_thread_locks_t_decimate_by(status, locks, amount) status = f_memory_array_decimate_by(amount, sizeof(f_thread_lock_t), (void **) & locks.array, locks.used, locks.size)
 #endif // _di_f_thread_locks_t_
 
 /**
index b1a35209f63eddd25fd3c6cc4be11048bb3e920c..12e7aef2a1a85faf694ce8a3ad17e839831b0118 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!attributes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (attributes->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (attributes->used + amount > attributes->size) {
-      if (attributes->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = attributes->used + amount;
 
-      return private_f_thread_lock_attributes_resize(attributes->used + amount, attributes);
+      if (length > attributes->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_lock_attributes_resize(length, attributes);
+      }
     }
 
     return F_data_not;
index 87c5796cce241ac57e4f42067f5dbec09953b155..b6f77739cc32ecc2a4bf421c31b92b8656a9b310 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_lock_attributes_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_lock_attributes_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_lock_attributes_t_clear(attributes) macro_f_memory_structure_clear(attributes)
-
   #define macro_f_thread_lock_attributes_t_resize(status, attributes, length) status = f_thread_lock_attributes_resize(length, &attributes);
   #define macro_f_thread_lock_attributes_t_adjust(status, attributes, length) status = f_thread_lock_attributes_adjust(length, &attributes);
 
index d6df593ff6252e58105d4d4ff892c3e38845efe7..200310b5f17c5053b8ba8ae8ae239baa3d46ff39 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!mutexs) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (mutexs->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (mutexs->used + amount > mutexs->size) {
-      if (mutexs->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = mutexs->used + amount;
 
-      return private_f_thread_mutexs_resize(mutexs->used + amount, mutexs);
+      if (length > mutexs->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_mutexs_resize(length, mutexs);
+      }
     }
 
     return F_data_not;
index 3dfd80787e4a04dcb70ee5ead8f77accc5a2b628..d159e8e93c56e121b34f180abbe55c8b6efc19ac 100644 (file)
@@ -55,8 +55,6 @@ extern "C" {
   #define macro_f_thread_mutexs_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_mutexs_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_mutexs_t_clear(mutexs) macro_f_memory_structure_clear(mutexs)
-
   #define macro_f_thread_mutexs_t_resize(status, mutexs, length) status = f_thread_mutexs_resize(length, &mutexs);
   #define macro_f_thread_mutexs_t_adjust(status, mutexs, length) status = f_thread_mutexs_adjust(length, &mutexs);
 
index 749404be508bc7a1cb0b58f9f621a6bc077f5508..0c5e358997ae46dd46a10957b3f23353be2e4aec 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!attributes) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (attributes->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (attributes->used + amount > attributes->size) {
-      if (attributes->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = attributes->used + amount;
 
-      return private_f_thread_mutex_attributes_resize(attributes->used + amount, attributes);
+      if (length > attributes->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_mutex_attributes_resize(length, attributes);
+      }
     }
 
     return F_data_not;
index 8f97d751228c49df2f7061f74f253235dd74d1de..0cfd9a8978853e9016c9a2196aeccedc923e95d6 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_mutex_attributes_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_mutex_attributes_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_mutex_attributes_t_clear(attributes) macro_f_memory_structure_clear(attributes)
-
   #define macro_f_thread_mutex_attributes_t_resize(status, attributes, length) status = f_thread_mutex_attributes_resize(length, &attributes);
   #define macro_f_thread_mutex_attributes_t_adjust(status, attributes, length) status = f_thread_mutex_attributes_adjust(length, &attributes);
 
index cfe8f8260fc8e3252241938cfb49a14ad6e15d35..6373936b19b5b420c2c95bb16d80dde524d7c5ff 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!onces) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (onces->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (onces->used + amount > onces->size) {
-      if (onces->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = onces->used + amount;
 
-      return private_f_thread_onces_resize(onces->used + amount, onces);
+      if (length > onces->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_onces_resize(length, onces);
+      }
     }
 
     return F_data_not;
index 0747313df58a0177cc1d5db93928b71294f60c8e..d62c39fe8f2af1a0a743f5ebff4181bad5b4b5a9 100644 (file)
@@ -53,8 +53,6 @@ extern "C" {
   #define macro_f_thread_onces_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_onces_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_onces_t_clear(onces) macro_f_memory_structure_clear(onces)
-
   #define macro_f_thread_onces_t_resize(status, onces, length) status = f_thread_onces_resize(length, &onces);
   #define macro_f_thread_onces_t_adjust(status, onces, length) status = f_thread_onces_adjust(length, &onces);
 
index 0acfd189c1b5cb7942026449fe06d0e8064a2734..85ea6971aa5571dd391048b0940cc981e59cf830 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!semaphores) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (semaphores->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (semaphores->used + amount > semaphores->size) {
-      if (semaphores->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = semaphores->used + amount;
 
-      return private_f_thread_semaphores_resize(semaphores->used + amount, semaphores);
+      if (length > semaphores->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_semaphores_resize(length, semaphores);
+      }
     }
 
     return F_data_not;
index 9722acf7fe75e1bb528a3ea1e25335ce770901b4..56ac0670a8349b491a647370222747882323c6e1 100644 (file)
@@ -54,8 +54,6 @@ extern "C" {
   #define macro_f_thread_semaphores_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_semaphores_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_semaphores_t_clear(semaphores) macro_f_memory_structure_clear(semaphores)
-
   #define macro_f_thread_semaphores_t_resize(status, semaphores, length) status = f_thread_semaphores_resize(length, &semaphores);
   #define macro_f_thread_semaphores_t_adjust(status, semaphores, length) status = f_thread_semaphores_adjust(length, &semaphores);
 
index afa1dd019edaae04f104b8f08435c4b35aae415c..a0e55a9d86bcd0bb8d2e0ced3d669554aca19bad 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!sets) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (sets->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (sets->used + amount > sets->size) {
-      if (sets->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = sets->used + amount;
 
-      return private_f_thread_sets_resize(sets->used + amount, sets);
+      if (length > sets->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_sets_resize(length, sets);
+      }
     }
 
     return F_data_not;
index 5406faaeff7b6315d651e2cc69b7fd8c76f01b02..c0921548929ce8f2fd647ef63f3169fab8543bfc 100644 (file)
@@ -64,8 +64,6 @@ extern "C" {
   #define macro_f_thread_sets_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_sets_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_sets_t_clear(sets) macro_f_memory_structure_clear(sets)
-
   #define macro_f_thread_sets_t_resize(status, sets, length) status = f_thread_sets_resize(length, &sets);
   #define macro_f_thread_sets_t_adjust(status, sets, length) status = f_thread_sets_adjust(length, &sets);
 
index e12db092005751d3853b786eae56a4a9a0698458..81258cf5daabb1bb61c7776faf3dc6fcef9c30d1 100644 (file)
@@ -78,14 +78,16 @@ extern "C" {
       if (!spins) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (spins->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (spins->used + amount > spins->size) {
-      if (spins->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = spins->used + amount;
 
-      return private_f_thread_spins_resize(spins->used + amount, spins);
+      if (length > spins->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_thread_spins_resize(length, spins);
+      }
     }
 
     return F_data_not;
index 61f0c82abe9c6c6507becfa32f8644e577b41df1..d6f7f929e9e761c5b7c49ca340e3f2d4c97c52b2 100644 (file)
@@ -52,8 +52,6 @@ extern "C" {
   #define macro_f_thread_spins_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_thread_spins_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_thread_spins_t_clear(spins) macro_f_memory_structure_clear(spins)
-
   #define macro_f_thread_spins_t_resize(status, spins, length) status = f_thread_spins_resize(length, &spins);
   #define macro_f_thread_spins_t_adjust(status, spins, length) status = f_thread_spins_adjust(length, &spins);
 
index c370a99be9019076027a1fd1e4375e2ae6a96b9b..023534d12dfe625ae29d8446d38166b7b955b3a1 100644 (file)
@@ -72,6 +72,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && polls->used + 1 > polls->size) {
+      if (polls->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = polls->used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -93,12 +95,16 @@ extern "C" {
       if (!polls) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (polls->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (polls->used + amount > polls->size) {
-      if (polls->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      const f_number_unsigned_t length = polls->used + amount;
 
-      return private_f_polls_resize(polls->used + amount, polls);
+      if (length > polls->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_polls_resize(length, polls);
+      }
     }
 
     return F_data_not;
@@ -211,6 +217,8 @@ extern "C" {
     #endif // _di_level_0_parameter_checking_
 
     if (step && pollss->used + 1 > pollss->size) {
+      if (pollss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
       f_number_unsigned_t size = pollss->used + step;
 
       if (size > F_number_t_size_unsigned_d) {
@@ -232,12 +240,16 @@ extern "C" {
       if (!pollss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (pollss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (pollss->used + amount > pollss->size) {
-      if (pollss->used + amount > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+      const f_number_unsigned_t length = pollss->used + amount;
 
-      return private_f_pollss_resize(pollss->used + amount, pollss);
+      if (length > pollss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_pollss_resize(length, pollss);
+      }
     }
 
     return F_data_not;
index e0f28b89dba5a41069bf100f359271df9028bff1..8de484cb66ec90e2a59b3a9c62190fab3bf4cddd 100644 (file)
@@ -107,12 +107,16 @@ extern "C" {
       if (!dynamics) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (dynamics->used + amount > dynamics->size) {
-      if (dynamics->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+    if (amount) {
+      if (dynamics->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+      const f_number_unsigned_t length = dynamics->used + amount;
 
-      return private_f_utf_string_dynamics_resize(dynamics->used + amount, dynamics);
+      if (length > dynamics->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_dynamics_resize(length, dynamics);
+      }
     }
 
     return F_data_not;
index db2a87899ee8c256e18c4748a2da17a44ed82a8a..d086606ddab56b0e7230faeab6c14e3faa94d151 100644 (file)
@@ -141,14 +141,16 @@ extern "C" {
       if (!dynamicss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (dynamicss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (dynamicss->used + amount > dynamicss->size) {
-      if (dynamicss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = dynamicss->used + amount;
 
-      return private_f_utf_string_dynamicss_resize(dynamicss->used + amount, dynamicss);
+      if (length > dynamicss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_dynamicss_resize(length, dynamicss);
+      }
     }
 
     return F_data_not;
index b77a89973f56025355f09ab5cf3a6e3a36dcbb9f..1db192b56d11e703674831eb89b0ce00455623a3 100644 (file)
@@ -125,14 +125,16 @@ extern "C" {
       if (!map_multis) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (map_multis->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (map_multis->used + amount > map_multis->size) {
-      if (map_multis->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = map_multis->used + amount;
 
-      return private_f_utf_string_map_multis_resize(map_multis->used + amount, map_multis);
+      if (length > map_multis->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_map_multis_resize(length, map_multis);
+      }
     }
 
     return F_data_not;
index 3c01df32bebb33fdcaf8b6f01f7df3118540d9eb..743b0075562d2aae13076378b9718c03546a9ee0 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_utf_string_map_multis_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_utf_string_map_multis_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_utf_string_map_multis_t_clear(map_multis) macro_f_memory_structure_clear(map_multis)
-
   #define macro_f_utf_string_map_multis_t_resize(status, map_multis, length) status = f_utf_string_map_multis_resize(length, &map_multis);
   #define macro_f_utf_string_map_multis_t_adjust(status, map_multis, length) status = f_utf_string_map_multis_adjust(length, &map_multis);
 
index 76598b2e43aaf12423ae4f032b82717cd97b0abb..c7571977d5ba9698535afbeb6b4886dbca4d4900 100644 (file)
@@ -140,14 +140,16 @@ extern "C" {
       if (!map_multiss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (map_multiss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (map_multiss->used + amount > map_multiss->size) {
-      if (map_multiss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = map_multiss->used + amount;
 
-      return private_f_utf_string_map_multiss_resize(map_multiss->used + amount, map_multiss);
+      if (length > map_multiss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_map_multiss_resize(length, map_multiss);
+      }
     }
 
     return F_data_not;
index 13bb564a87cd235ad7778a11c22e613645ec680d..4427dd3a623a04b0777f1f7837fb43cbde5ea63c 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_utf_string_map_multiss_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_utf_string_map_multiss_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_utf_string_map_multiss_t_clear(map_multis) macro_f_memory_structure_clear(map_multis)
-
   #define macro_f_utf_string_map_multiss_t_resize(status, map_multis, length) status = f_utf_string_map_multiss_resize(length, &map_multis);
   #define macro_f_utf_string_map_multiss_t_adjust(status, map_multis, length) status = f_utf_string_map_multiss_adjust(length, &map_multis);
 
index 5829d62ac78ff4b1036fac014cc46d080e8ef25a..dda7f5a1d75ad0efae6bfb73b6e639c2a868e8f2 100644 (file)
@@ -123,14 +123,16 @@ extern "C" {
       if (!maps) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (maps->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (maps->used + amount > maps->size) {
-      if (maps->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = maps->used + amount;
 
-      return private_f_utf_string_maps_resize(maps->used + amount, maps);
+      if (length > maps->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_maps_resize(length, maps);
+      }
     }
 
     return F_data_not;
index 16edf5723b005ca0562bde34900c715eb55c5df8..ad92b14842b2d6a6272e5bd8b42421651ab59854 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_utf_string_maps_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_utf_string_maps_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_utf_string_maps_t_clear(maps) macro_f_memory_structure_clear(maps)
-
   #define macro_f_utf_string_maps_t_resize(status, maps, length) status = f_utf_string_maps_resize(length, &maps);
   #define macro_f_utf_string_maps_t_adjust(status, maps, length) status = f_utf_string_maps_adjust(length, &maps);
 
index 10c52bb43ce88412a25ff3ba71d97b0b57bd6912..a281a0d0a404be750c97654e4944929bb0df7930 100644 (file)
@@ -137,14 +137,16 @@ extern "C" {
       if (!mapss) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (mapss->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (mapss->used + amount > mapss->size) {
-      if (mapss->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = mapss->used + amount;
 
-      return private_f_utf_string_mapss_resize(mapss->used + amount, mapss);
+      if (length > mapss->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_mapss_resize(length, mapss);
+      }
     }
 
     return F_data_not;
index 38f75114cd9f2fde17db7f23b0c6eaec4688ad0b..b7d83c19a88e836e4cb0f5d36393b3b8ed04d38c 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_utf_string_mapss_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_utf_string_mapss_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_utf_string_mapss_t_clear(maps) macro_f_memory_structure_clear(maps)
-
   #define macro_f_utf_string_mapss_t_resize(status, maps, length) status = f_utf_string_mapss_resize(length, &maps);
   #define macro_f_utf_string_mapss_t_adjust(status, maps, length) status = f_utf_string_mapss_adjust(length, &maps);
 
index 556bd1e3b86cfd48fca12ad348ff32ce7f47040a..dc4cb48681bcacbb16616f712db0b0f5df188212 100644 (file)
@@ -26,12 +26,12 @@ extern "C" {
 #if !defined(_di_f_utf_string_append_) || !defined(_di_f_utf_string_append_assure_) || !defined(_di_f_utf_string_append_assure_nulless_) || !defined(_di_f_utf_string_append_nulless_) || !defined(_di_f_utf_string_dynamic_append_) || !defined(_di_f_utf_string_dynamic_append_assure_) || !defined(_di_f_utf_string_dynamic_append_assure_nulless_) || !defined(_di_f_utf_string_dynamic_append_nulless_) || !defined(_di_f_utf_string_dynamic_increase_by_) || !defined(_di_f_utf_string_dynamic_mash_) || !defined(_di_f_utf_string_dynamic_mash_nulless_) || !defined(_di_f_utf_string_dynamic_mish_) || !defined(_di_f_utf_string_dynamic_mish_nulless_) || !defined(_di_f_utf_string_dynamic_partial_append_) || !defined(_di_f_utf_string_dynamic_partial_append_assure_) || !defined(_di_f_utf_string_dynamic_partial_append_assure_nulless_) || !defined(_di_f_utf_string_dynamic_partial_append_nulless_) || !defined(_di_f_utf_string_dynamic_partial_mash_) || !defined(_di_f_utf_string_dynamic_partial_mash_nulless_) || !defined(_di_f_utf_string_dynamic_partial_mish_) || !defined(_di_f_utf_string_dynamic_partial_mish_nulless_) || !defined(_di_f_utf_string_dynamic_partial_prepend_) || !defined(_di_f_utf_string_dynamic_partial_prepend_assure_) || !defined(_di_f_utf_string_dynamic_partial_prepend_assure_nulless_) || !defined(_di_f_utf_string_dynamic_partial_prepend_nulless_) || !defined(_di_f_utf_string_dynamic_prepend_) || !defined(_di_f_utf_string_dynamic_prepend_assure_) || !defined(_di_f_utf_string_dynamic_prepend_assure_nulless_) || !defined(_di_f_utf_string_dynamic_prepend_nulless_) || !defined(_di_f_utf_string_dynamics_append_) || !defined(_di_f_utf_string_dynamics_append_all_) || !defined(_di_f_utf_string_map_multis_append_) || !defined(_di_f_utf_string_map_multis_append_all_) || !defined(_di_f_utf_string_map_multiss_append_) || !defined(_di_f_utf_string_map_multiss_append_all_) || !defined(_di_f_utf_string_maps_append_) || !defined(_di_f_utf_string_maps_append_all_) || !defined(_di_f_utf_string_mapss_append_) || !defined(_di_f_utf_string_mapss_append_all_) || !defined(_di_f_utf_string_mash_) || !defined(_di_f_utf_string_mash_nulless_) || !defined(_di_f_utf_string_mish_) || !defined(_di_f_utf_string_mish_nulless_) || !defined(_di_f_utf_string_prepend_) || !defined(_di_f_utf_string_prepend_assure_) || !defined(_di_f_utf_string_prepend_assure_nulless_) || !defined(_di_f_utf_string_prepend_nulless_) || !defined(_di_f_utf_string_triples_append_) || !defined(_di_f_utf_string_triples_append_all_) || !defined(_di_f_utf_string_tripless_append_) || !defined(_di_f_utf_string_tripless_append_all_)
   f_status_t private_f_utf_string_dynamic_increase_by(const f_number_unsigned_t amount, f_utf_string_dynamic_t * const dynamic) {
 
-    if (dynamic->used + amount > dynamic->size) {
-      if (dynamic->used + amount > F_string_t_size_d) {
-        return F_status_set_error(F_string_too_large);
-      }
+    const f_number_unsigned_t length = dynamic->used + amount;
 
-      return private_f_utf_string_dynamic_resize(dynamic->used + amount, dynamic);
+    if (length > dynamic->size) {
+      if (length > F_string_t_size_d) return F_status_set_error(F_string_too_large);
+
+      return private_f_utf_string_dynamic_resize(length, dynamic);
     }
 
     return F_data_not;
index ed1797d95ad087722c39afc4bb09098320e760c5..5b7e19046085c4e0bcc16a515570f2daf522cb92 100644 (file)
@@ -156,14 +156,16 @@ extern "C" {
       if (!triples) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (triples->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (triples->used + amount > triples->size) {
-      if (triples->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = triples->used + amount;
 
-      return private_f_utf_string_triples_resize(triples->used + amount, triples);
+      if (length > triples->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_triples_resize(length, triples);
+      }
     }
 
     return F_data_not;
index b3b7a22b7c3411388ee4abf472bce5f85af0525a..e68b7789468f388a02f6b041fa456caf21ead517 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_utf_string_triples_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_utf_string_triples_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_utf_string_triples_t_clear(triples) macro_f_memory_structure_clear(triples)
-
   #define macro_f_utf_string_triples_t_resize(status, triples, length) status = f_utf_string_triples_resize(length, &triples);
   #define macro_f_utf_string_triples_t_adjust(status, triples, length) status = f_utf_string_triples_adjust(length, &triples);
 
index 1eb04ae8590c80360eb1d796d1a4d03bfc444daa..b4f37fced757cf8e4f6a41f5d24c92efb2e3ea92 100644 (file)
@@ -137,14 +137,16 @@ extern "C" {
       if (!tripless) return F_status_set_error(F_parameter);
     #endif // _di_level_0_parameter_checking_
 
-    if (!amount) return F_data_not;
+    if (amount) {
+      if (tripless->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-    if (tripless->used + amount > tripless->size) {
-      if (tripless->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+      const f_number_unsigned_t length = tripless->used + amount;
 
-      return private_f_utf_string_tripless_resize(tripless->used + amount, tripless);
+      if (length > tripless->size) {
+        if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
+
+        return private_f_utf_string_tripless_resize(length, tripless);
+      }
     }
 
     return F_data_not;
index 339ea38f2eaf08ab4ce4dacd0947770eb54f630b..c7655ffccc63e7c868764e0f7a3ce18f95131664 100644 (file)
@@ -37,8 +37,6 @@ extern "C" {
   #define macro_f_utf_string_tripless_t_initialize_1(array, size, used) { array, size, used }
   #define macro_f_utf_string_tripless_t_initialize_2(array, length) { array, length, length }
 
-  #define macro_f_utf_string_tripless_t_clear(tripless) macro_f_memory_structure_clear(tripless)
-
   #define macro_f_utf_string_tripless_t_resize(status, tripless, length) status = f_utf_string_tripless_resize(length, &tripless);
   #define macro_f_utf_string_tripless_t_adjust(status, tripless, length) status = f_utf_string_tripless_adjust(length, &tripless);
 
index 8be713a3d087e66e58e696cfcb21805f21911fcc..f59aba750a647fb1abcde3074c66b65bf7ad618d 100644 (file)
@@ -29,18 +29,20 @@ extern "C" {
 #ifndef _di_controller_entry_actions_increase_by_
   f_status_t controller_entry_actions_increase_by(const f_number_unsigned_t amount, controller_entry_actions_t * const actions) {
 
-    if (actions->used + amount > actions->size) {
-      if (actions->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+    if (amount) {
+      if (actions->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      const f_status_t status = f_memory_resize(actions->size, actions->used + amount, sizeof(controller_entry_action_t), (void **) & actions->array);
+      const f_number_unsigned_t length = actions->used + amount;
 
-      if (F_status_is_error_not(status)) {
-        actions->size = actions->used + amount;
-      }
+      if (length > actions->size) {
+        const f_status_t status = f_memory_resize(actions->size, length, sizeof(controller_entry_action_t), (void **) & actions->array);
 
-      return status;
+        if (F_status_is_error_not(status)) {
+          actions->size = actions->used + amount;
+        }
+
+        return status;
+      }
     }
 
     return F_data_not;
@@ -73,18 +75,20 @@ extern "C" {
 #ifndef _di_controller_entry_items_increase_by_
   f_status_t controller_entry_items_increase_by(const f_number_unsigned_t amount, controller_entry_items_t * const items) {
 
-    if (items->used + amount > items->size) {
-      if (items->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+    if (amount) {
+      if (items->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      const f_status_t status = f_memory_resize(items->size, items->used + amount, sizeof(controller_entry_item_t), (void **) & items->array);
+      const f_number_unsigned_t length = items->used + amount;
 
-      if (F_status_is_error_not(status)) {
-        items->size = items->used + amount;
-      }
+      if (length > items->size) {
+        const f_status_t status = f_memory_resize(items->size, length, sizeof(controller_entry_item_t), (void **) & items->array);
 
-      return status;
+        if (F_status_is_error_not(status)) {
+          items->size = items->used + amount;
+        }
+
+        return status;
+      }
     }
 
     return F_data_not;
index 85c560e1c9c18f0aaf672d408ecb60dad63df2e1..1bc9296a5a083243b7380dd3afc65085395dd821 100644 (file)
@@ -35,18 +35,20 @@ extern "C" {
 #ifndef _di_controller_rule_actions_increase_by_
   f_status_t controller_rule_actions_increase_by(const f_number_unsigned_t amount, controller_rule_actions_t * const actions) {
 
-    if (actions->used + amount > actions->size) {
-      if (actions->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+    if (amount) {
+      if (actions->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      const f_status_t status = f_memory_resize(actions->size, actions->used + amount, sizeof(controller_rule_action_t), (void **) & actions->array);
+      const f_number_unsigned_t length = actions->used + amount;
 
-      if (F_status_is_error_not(status)) {
-        actions->size = actions->used + amount;
-      }
+      if (length > actions->size) {
+        const f_status_t status = f_memory_resize(actions->size, length, sizeof(controller_rule_action_t), (void **) & actions->array);
 
-      return status;
+        if (F_status_is_error_not(status)) {
+          actions->size = actions->used + amount;
+        }
+
+        return status;
+      }
     }
 
     return F_data_not;
index 66a5019d6b05c0260e7e70022a2d8496a34f7df7..52c12484d407162c0cc45c608cd08b7ae5138580 100644 (file)
@@ -2528,18 +2528,20 @@ extern "C" {
 #ifndef _di_controller_rule_items_increase_by_
   f_status_t controller_rule_items_increase_by(const f_number_unsigned_t amount, controller_rule_items_t * const items) {
 
-    if (items->used + amount > items->size) {
-      if (items->used + amount > F_number_t_size_unsigned_d) {
-        return F_status_set_error(F_array_too_large);
-      }
+    if (amount) {
+      if (items->used >= F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
-      const f_status_t status = f_memory_resize(items->size, items->used + amount, sizeof(controller_rule_item_t), (void **) & items->array);
+      const f_number_unsigned_t length = items->used + amount;
 
-      if (F_status_is_error_not(status)) {
-        items->size = items->used + amount;
-      }
+      if (length > items->size) {
+        const f_status_t status = f_memory_resize(items->size, length, sizeof(controller_rule_item_t), (void **) & items->array);
 
-      return status;
+        if (F_status_is_error_not(status)) {
+          items->size = items->used + amount;
+        }
+
+        return status;
+      }
     }
 
     return F_data_not;
index 0a49a7103c14bfbd9a13e85ce017d07afddc997f..45f088036fd1a8b971474663e08870e3754d5084 100644 (file)
@@ -17,6 +17,7 @@ extern "C" {
   f_status_t fss_read_depths_resize(const f_number_unsigned_t length, fss_read_depths_t * const depths) {
 
     if (!depths) return F_status_set_error(F_parameter);
+    if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
     if (depths->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     for (f_number_unsigned_t i = length; i < depths->size; ++i) {
@@ -40,6 +41,7 @@ extern "C" {
   f_status_t fss_read_files_resize(const f_number_unsigned_t length, fss_read_files_t * const files) {
 
     if (!files) return F_status_set_error(F_parameter);
+    if (length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
     if (files->used + length > F_number_t_size_unsigned_d) return F_status_set_error(F_array_too_large);
 
     const f_status_t status = f_memory_adjust(files->size, length, sizeof(fss_read_file_t), (void **) & files->array);
index 6548de7f771adaf4dd008b854e6eb86823401f7d..0a322a8af7e9e5b8af66faceb8bf7037c44365d5 100644 (file)
@@ -71,8 +71,6 @@ extern "C" {
   } fss_read_depths_t;
 
   #define fss_read_depths_t_initialize { 0, 0, 0 }
-
-  #define macro_fss_read_depths_t_clear(depths) macro_f_memory_structure_clear(depths)
 #endif // _di_fss_read_depths_t_
 
 /**