]> git.kaiwu.me - njs.git/commitdiff
Improved handling of retvals of system function in "fs".
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 26 May 2020 16:21:05 +0000 (16:21 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 26 May 2020 16:21:05 +0000 (16:21 +0000)
src/njs_fs.c

index 7e0cbcaf7bc1a70cdccfd59de81152e8a95a6444..1f5fcaad51c5859c8384ab1521b032d4e11a344b 100644 (file)
@@ -458,16 +458,15 @@ njs_fs_rename_sync(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         return ret;
     }
 
+    njs_set_undefined(&vm->retval);
+
     ret = rename(old_path, new_path);
     if (njs_slow_path(ret != 0)) {
-        (void) njs_fs_error(vm, "rename", strerror(errno), NULL, errno,
+        ret = njs_fs_error(vm, "rename", strerror(errno), NULL, errno,
                             &vm->retval);
-        return NJS_ERROR;
     }
 
-    njs_set_undefined(&vm->retval);
-
-    return NJS_OK;
+    return ret;
 }
 
 
@@ -515,16 +514,13 @@ njs_fs_access(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         return NJS_ERROR;
     }
 
+    njs_set_undefined(&retval);
+
     ret = access(file_path, md);
     if (njs_slow_path(ret != 0)) {
         ret = njs_fs_error(vm, "access", strerror(errno), path, errno, &retval);
-        goto done;
     }
 
-    njs_set_undefined(&retval);
-
-done:
-
     if (ret == NJS_OK) {
         return njs_fs_result(vm, &retval, calltype, callback, 1);
     }
@@ -573,17 +569,14 @@ njs_fs_symlink(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         return NJS_ERROR;
     }
 
+    njs_set_undefined(&retval);
+
     ret = symlink(target_path, file_path);
     if (njs_slow_path(ret != 0)) {
         ret = njs_fs_error(vm, "symlink", strerror(errno), path, errno,
                            &retval);
-        goto done;
     }
 
-    njs_set_undefined(&retval);
-
-done:
-
     if (ret == NJS_OK) {
         return njs_fs_result(vm, &retval, calltype, callback, 1);
     }
@@ -616,16 +609,13 @@ njs_fs_unlink(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
         }
     }
 
+    njs_set_undefined(&retval);
+
     ret = unlink(file_path);
     if (njs_slow_path(ret != 0)) {
         ret = njs_fs_error(vm, "unlink", strerror(errno), path, errno, &retval);
-        goto done;
     }
 
-    njs_set_undefined(&retval);
-
-done:
-
     if (ret == NJS_OK) {
         return njs_fs_result(vm, &retval, calltype, callback, 1);
     }