]> Kevux Git Server - fll/commitdiff
Update: Switch for..loop with memcpy() for character width copies.
authorKevin Day <kevin@kevux.org>
Wed, 6 Mar 2024 02:01:14 +0000 (20:01 -0600)
committerKevin Day <kevin@kevux.org>
Wed, 6 Mar 2024 02:51:25 +0000 (20:51 -0600)
level_1/fl_fss/c/fss/basic_list.c
level_1/fl_fss/c/fss/embedded_list.c
level_1/fl_fss/c/fss/extended_list.c
level_1/fl_fss/c/private-fss.c

index 17d4beef272a2bb563f5440f34d5db91e399cae2..4c190dff9278f24bd142610e7a738165dcfac679 100644 (file)
@@ -903,9 +903,9 @@ extern "C" {
           status = f_string_dynamic_increase_by(width, destination);
           if (F_status_is_error(status)) break;
 
-          for (i = 0; i < width; ++i) {
-            destination->string[destination->used++] = object.string[range->start + i];
-          } // for
+          memcpy(destination->string + destination->used, object.string + range->start, width);
+
+          destination->used += width;
         }
       }
 
@@ -982,9 +982,9 @@ extern "C" {
         status = f_string_dynamic_increase_by(width, destination);
         if (F_status_is_error(status)) break;
 
-        for (i = 0; i < width; ++i) {
-          destination->string[destination->used++] = object.string[range->start + i];
-        } // for
+        memcpy(destination->string + destination->used, object.string + range->start, width);
+
+        destination->used += width;
       }
 
       status = f_utf_buffer_increment(object, range, 1);
index fc53776e7ecb8ab8d6e551122edb5ed44f6d20f0..3a1ef95895963277c7e134e2d58aa2e0714c1ee9 100644 (file)
@@ -1350,9 +1350,9 @@ extern "C" {
           status = f_string_dynamic_increase_by(width, destination);
           if (F_status_is_error(status)) break;
 
-          for (i = 0; i < width; ++i) {
-            destination->string[destination->used++] = object.string[range->start + i];
-          } // for
+          memcpy(destination->string + destination->used, object.string + range->start, width);
+
+          destination->used += width;
         }
       }
 
@@ -1444,9 +1444,9 @@ extern "C" {
         status = f_string_dynamic_increase_by(width, destination);
         if (F_status_is_error(status)) break;
 
-        for (i = 0; i < width; ++i) {
-          destination->string[destination->used++] = object.string[range->start + i];
-        } // for
+        memcpy(destination->string + destination->used, object.string + range->start, width);
+
+        destination->used += width;
       }
 
       status = f_utf_buffer_increment(object, range, 1);
index 34f88b670cbf57da558146135c2614252c62b563..3eb8050bbd908cf515fe17a9797b319038a5df14 100644 (file)
@@ -918,9 +918,9 @@ extern "C" {
           status = f_string_dynamic_increase_by(width, destination);
           if (F_status_is_error(status)) break;
 
-          for (i = 0; i < width; ++i) {
-            destination->string[destination->used++] = object.string[range->start + i];
-          } // for
+          memcpy(destination->string + destination->used, object.string + range->start, width);
+
+          destination->used += width;
         }
       }
 
@@ -1012,9 +1012,9 @@ extern "C" {
         status = f_string_dynamic_increase_by(width, destination);
         if (F_status_is_error(status)) break;
 
-        for (i = 0; i < width; ++i) {
-          destination->string[destination->used++] = object.string[range->start + i];
-        } // for
+        memcpy(destination->string + destination->used, object.string + range->start, width);
+
+        destination->used += width;
       }
 
       status = f_utf_buffer_increment(object, range, 1);
index 1de3a7da5c1c7931a99313af4ec03e6ef847d338..506e0f06b7cf8cf1213dfc4acfa7fcba5eb869b7 100644 (file)
@@ -916,9 +916,9 @@ extern "C" {
 
           destination->string[destination->used++] = quote_char;
 
-          for (i = 0; i < width; ++i) {
-            destination->string[destination->used++] = object.string[range->start + i];
-          } // for
+          memcpy(destination->string + destination->used, object.string + range->start, width);
+
+          destination->used += width;
         }
         else if ((flag & 0x1) && object.string[range->start] == f_fss_comment_s.string[0]) {
 
@@ -964,9 +964,9 @@ extern "C" {
             destination->string[destination->used++] = f_fss_delimit_slash_s.string[0];
           } // for
 
-          for (i = 0; i < width; ++i) {
-            destination->string[destination->used++] = object.string[range->start + i];
-          } // for
+          memcpy(destination->string + destination->used, object.string + range->start, width);
+
+          destination->used += width;
         }
       }
       else if (object.string[range->start] == quote_char) {
@@ -1031,9 +1031,9 @@ extern "C" {
 
         destination->string[destination->used++] = quote_char;
 
-        for (i = 0; i < width; ++i) {
-          destination->string[destination->used++] = object.string[range->start + i];
-        } // for
+        memcpy(destination->string + destination->used, object.string + range->start, width);
+
+        destination->used += width;
       }
       else if (object.string[range->start] == f_fss_eol_s.string[0]) {
         status = F_status_set_error(F_none_eol);
@@ -1055,9 +1055,9 @@ extern "C" {
         status = f_string_dynamic_increase_by(width, destination);
         if (F_status_is_error(status)) break;
 
-        for (i = 0; i < width; ++i) {
-          destination->string[destination->used++] = object.string[range->start + i];
-        } // for
+        memcpy(destination->string + destination->used, object.string + range->start, width);
+
+        destination->used += width;
       }
 
       status = f_utf_buffer_increment(object, range, 1);