]> git.sur5r.net Git - openldap/commitdiff
ITS#8324 additional tweaks
authorHoward Chu <hyc@symas.com>
Sun, 6 Dec 2015 20:54:23 +0000 (20:54 +0000)
committerHoward Chu <hyc@symas.com>
Sun, 6 Dec 2015 20:54:23 +0000 (20:54 +0000)
VirtualAlloc is only needed with WRITEMAP. Regular writes
already extend the mmap implictly.

libraries/liblmdb/mdb.c

index 6c88c961b8a514ea15fd72940943663d4dad1d4e..09f15099d215d0c2d89c3c61c1f6834dd943e6e3 100644 (file)
@@ -2324,7 +2324,7 @@ mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp)
                        goto fail;
        }
 #ifdef _WIN32
-       {
+       if (env->me_flags & MDB_WRITEMAP) {
                void *p;
                p = (MDB_page *)(env->me_map + env->me_psize * pgno);
                p = VirtualAlloc(p, env->me_psize * num, MEM_COMMIT,
@@ -4260,7 +4260,8 @@ mdb_env_open2(MDB_env *env)
        /* For FIXEDMAP, make sure the file is non-empty before we attempt to map it */
        if (newenv) {
                char dummy = 0;
-               rc = WriteFile(env->me_fd, &dummy, 1, NULL, NULL);
+               DWORD len;
+               rc = WriteFile(env->me_fd, &dummy, 1, &len, NULL);
                if (!rc) {
                        rc = ErrCode();
                        return rc;