gbranden pushed a commit to branch master
in repository groff.
commit fa7dad1c48ff90aacc7b0d36a015204fbea41e89
Author: G. Branden Robinson <[email protected]>
AuthorDate: Thu Jun 25 17:51:41 2026 -0500
[libgroff]: Refactor `string::move()`.
* src/libs/libgroff/string.cpp (string::move): Refactor to reduce heap
manipulation and memory copying.
---
ChangeLog | 5 +++++
src/libs/libgroff/string.cpp | 10 ++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 370081839..8a0d590fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2026-06-26 G. Branden Robinson <[email protected]>
+
+ * src/libs/libgroff/string.cpp (string::move): Refactor to
+ reduce heap manipulation and memory copying.
+
2026-06-26 G. Branden Robinson <[email protected]>
* src/libs/libgroff/string.cpp (salloc, sfree_and_alloc)
diff --git a/src/libs/libgroff/string.cpp b/src/libs/libgroff/string.cpp
index db4e39cdb..67fc36205 100644
--- a/src/libs/libgroff/string.cpp
+++ b/src/libs/libgroff/string.cpp
@@ -213,9 +213,15 @@ string &string::operator=(char c)
void string::move(string &s)
{
- sfree_and_alloc(ptr, sz, s.len, &sz);
- memcpy(ptr, s.ptr, s.len);
+ char *ptr_tmp = ptr;
+ size_t len_tmp = len;
+ size_t sz_tmp = sz;
+ ptr = s.ptr;
len = s.len;
+ sz = s.sz;
+ s.ptr = ptr_tmp;
+ s.len = len_tmp;
+ s.sz = sz_tmp;
s.clear();
assert(ptr != 0 /* nullptr */);
}
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit