Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
3572-erts-Add-sys_memchr.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 3572-erts-Add-sys_memchr.patch of Package erlang
From ef1ded8bf759bb8a749cdada959d2e6c1951d895 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Tue, 28 Mar 2023 15:54:48 +0200 Subject: [PATCH 2/2] erts: Add sys_memchr() for completeness/symmetry with sys_memrchr(). --- erts/emulator/beam/packet_parser.c | 14 +++++++------- erts/emulator/beam/sys.h | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/erts/emulator/beam/packet_parser.c b/erts/emulator/beam/packet_parser.c index 50d292b33e..164994a98f 100644 --- a/erts/emulator/beam/packet_parser.c +++ b/erts/emulator/beam/packet_parser.c @@ -293,7 +293,7 @@ int packet_get_length(enum PacketParseType htype, case TCP_PB_LINE_LF: { /* TCP_PB_LINE_LF: [Data ... Delimiter] */ const char* ptr2; - if ((ptr2 = memchr(ptr, delimiter, n)) == NULL) { + if ((ptr2 = sys_memchr(ptr, delimiter, n)) == NULL) { if (n > max_plen && max_plen != 0) { /* packet full */ DEBUGF((" => packet full (no NL)=%d\r\n", n)); goto error; @@ -407,7 +407,7 @@ int packet_get_length(enum PacketParseType htype, } while (1) { - const char* ptr2 = memchr(ptr1, '\n', len); + const char* ptr2 = sys_memchr(ptr1, '\n', len); if (ptr2 == NULL) { if (max_plen != 0) { @@ -520,7 +520,7 @@ http_parse_absoluteURI(PacketHttpURI* uri, const char* uri_ptr, int uri_len) const char* p; const char* v; - if ((p = memchr(uri_ptr, '/', uri_len)) == NULL) { + if ((p = sys_memchr(uri_ptr, '/', uri_len)) == NULL) { /* host [":" port] */ uri->s2_ptr = "/"; uri->s2_len = 1; @@ -534,15 +534,15 @@ http_parse_absoluteURI(PacketHttpURI* uri, const char* uri_ptr, int uri_len) uri->s1_ptr = uri_ptr; uri->port = 0; /* undefined */ - if ((p = memchr(uri_ptr, ':', uri_len)) == NULL) { + if ((p = sys_memchr(uri_ptr, ':', uri_len)) == NULL) { uri->s1_len = uri_len; } /* ipv6 * eg [::1]:4000 * eg [FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80 */ - else if (memchr(uri_ptr, '[', uri_len) == uri_ptr && - (v = memchr(uri_ptr, ']', uri_len)) != NULL) { + else if (sys_memchr(uri_ptr, '[', uri_len) == uri_ptr && + (v = sys_memchr(uri_ptr, ']', uri_len)) != NULL) { int n = (v - uri_ptr) + 1; int port = 0; uri->s1_len = n; @@ -632,7 +632,7 @@ static void http_parse_uri(PacketHttpURI* uri, const char* uri_ptr, int uri_len) } else { char* ptr; - if ((ptr = memchr(uri_ptr, ':', uri_len)) == NULL) { + if ((ptr = sys_memchr(uri_ptr, ':', uri_len)) == NULL) { uri->type = URI_STRING; uri->s1_ptr = uri_ptr; uri->s1_len = uri_len; diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h index e009473403..f162569252 100644 --- a/erts/emulator/beam/sys.h +++ b/erts/emulator/beam/sys.h @@ -1079,6 +1079,7 @@ ERTS_GLB_INLINE void *sys_memmove(void *dest, const void *src, size_t n); ERTS_GLB_INLINE int sys_memcmp(const void *s1, const void *s2, size_t n); ERTS_GLB_INLINE void *sys_memset(void *s, int c, size_t n); ERTS_GLB_INLINE void *sys_memzero(void *s, size_t n); +ERTS_GLB_INLINE void *sys_memchr(const void *s, int c, size_t n); ERTS_GLB_INLINE void *sys_memrchr(const void *s, int c, size_t n); ERTS_GLB_INLINE int sys_strcmp(const char *s1, const char *s2); ERTS_GLB_INLINE int sys_strncmp(const char *s1, const char *s2, size_t n); @@ -1113,6 +1114,11 @@ ERTS_GLB_INLINE void *sys_memzero(void *s, size_t n) ASSERT(s != NULL); return memset(s,'\0',n); } +ERTS_GLB_INLINE void *sys_memchr(const void *s, int c, size_t n) +{ + ASSERT(s != NULL); + return (void*)memchr(s, c, n); +} ERTS_GLB_INLINE void *sys_memrchr(const void *s, int c, size_t n) { ASSERT(s != NULL); -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor