guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 04/18: bytevector-slice: optimize trivial case


From: Andy Wingo
Subject: [Guile-commits] 04/18: bytevector-slice: optimize trivial case
Date: Thu, 8 Jun 2023 04:26:41 -0400 (EDT)

wingo pushed a commit to branch main
in repository guile.

commit 67dbc60e8f5a839aaaf3b218744d026165ac1cdf
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Thu Jun 8 09:01:59 2023 +0200

    bytevector-slice: optimize trivial case
    
    * libguile/bytevectors.c (scm_bytevector_slice): Return the bytevector
    directly if start==0 and count==len.
---
 libguile/bytevectors.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c
index 6d9f6476d..6b14c7246 100644
--- a/libguile/bytevectors.c
+++ b/libguile/bytevectors.c
@@ -357,6 +357,9 @@ SCM_DEFINE (scm_bytevector_slice, "bytevector-slice", 2, 1, 
0,
   else
     c_size = scm_to_size_t (size);
 
+  if (c_offset == 0 && c_size == SCM_BYTEVECTOR_LENGTH (bv))
+    return bv;
+
   if (INT_ADD_OVERFLOW (c_offset, c_size)
       || (c_offset + c_size > SCM_BYTEVECTOR_LENGTH (bv)))
     scm_out_of_range (FUNC_NAME, offset);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]