瀏覽代碼

LibC: Support backwards copy in memmove().

Andreas Kling 6 年之前
父節點
當前提交
c7ded89f05
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      LibC/string.cpp

+ 6 - 2
LibC/string.cpp

@@ -141,8 +141,12 @@ void* memmove(void* dest, const void* src, size_t n)
 {
     if (dest < src)
         return memcpy(dest, src, n);
-    // FIXME: Implement backwards copy.
-    assert(false);
+
+    byte *pd = (byte*)dest;
+    const byte *ps = (const byte*)src;
+    for (pd += n, ps += n; n--;)
+        *--pd = *--ps;
+    return dest;
 }
 
 char* strcpy(char* dest, const char *src)