foo
This commit is contained in:
+7
-6
@@ -24,15 +24,14 @@ size_t strnlen(const char* str, size_t len) {
|
||||
|
||||
[[__hot]]
|
||||
int memcmp(const void* s1, const void* s2, size_t size) {
|
||||
int diff = 0;
|
||||
const uint8_t* s1ptr = s1;
|
||||
const uint8_t* s2ptr = s2;
|
||||
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
if (s1ptr[i] != s2ptr[i])
|
||||
diff++;
|
||||
return s1ptr[i] - s2ptr[i];
|
||||
}
|
||||
return diff;
|
||||
return 0;
|
||||
}
|
||||
|
||||
[[__hot]]
|
||||
@@ -103,7 +102,7 @@ void* memset(void* dest, int value, size_t n) {
|
||||
}
|
||||
|
||||
size_t* qword_dest = (size_t*)d;
|
||||
size_t qword_value = value;
|
||||
size_t qword_value = (uint8_t)value;
|
||||
qword_value |= (qword_value << 8);
|
||||
qword_value |= (qword_value << 16);
|
||||
qword_value |= (qword_value << 32);
|
||||
@@ -126,8 +125,10 @@ void* memset(void* dest, int value, size_t n) {
|
||||
}
|
||||
|
||||
char* strncpy(char* restrict dst, const char* restrict src, size_t len) {
|
||||
size_t src_len = strnlen(src, len) + 1;
|
||||
return memcpy(dst, src, MIN(len, src_len));
|
||||
size_t src_len = strnlen(src, len);
|
||||
memcpy(dst, src, src_len);
|
||||
memset(dst + src_len, 0, len - src_len);
|
||||
return dst;
|
||||
}
|
||||
|
||||
int strncmp(const char* str1, const char* str2, size_t len) {
|
||||
|
||||
Reference in New Issue
Block a user