string/memory functions: avoid qemu bugs/performance issues.
Use V on real hardware, but GC on qemu.
Change-Id: I419546d94555540e14a14dcc52bd99413cbbcfa1
diff --git a/libc/bionic/strnlen.c b/libc/bionic/strnlen.cpp
similarity index 89%
rename from libc/bionic/strnlen.c
rename to libc/bionic/strnlen.cpp
index 2c6f60a..7101b21 100644
--- a/libc/bionic/strnlen.c
+++ b/libc/bionic/strnlen.cpp
@@ -25,14 +25,10 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
+
#include <string.h>
-size_t strnlen(const char* str, size_t maxlen)
-{
- char* p = memchr(str, 0, maxlen);
-
- if (p == NULL)
- return maxlen;
- else
- return (p - str);
+size_t strnlen(const char* s, size_t n) {
+ const char* p = static_cast<const char*>(memchr(s, 0, n));
+ return p ? (p - s) : n;
}