]> gitweb.factorcode.org Git - factor.git/commitdiff
Revert "windows.errors: streamline error handling and throwing"
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 3 Jan 2020 19:02:57 +0000 (13:02 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Fri, 3 Jan 2020 19:02:57 +0000 (13:02 -0600)
This reverts commit ca474dd154c8ce59b4a1e40281a4b9fc6e182a1a.

basis/windows/errors/authors.txt
basis/windows/errors/errors.factor

index d652f68ac871fb0bf59a892373e3b1cbfccc4183..7c1b2f22790bfdca05f14a555a40b7eaa3ce2abd 100644 (file)
@@ -1,2 +1 @@
 Doug Coleman
 Doug Coleman
-Alexander Ilin
index ffb735be08774ca5176dc1c57bc5f58710f5f933..f5e5314e2f6d1d629177c18977a2590eebaefa8b 100644 (file)
@@ -719,18 +719,23 @@ CONSTANT: FORMAT_MESSAGE_MAX_WIDTH_MASK   0x000000FF
 
 ERROR: windows-error n string ;
 
 
 ERROR: windows-error n string ;
 
-: throw-windows-error ( n -- * )
-    dup n>win32-error-string windows-error ;
+: (win32-error) ( n -- )
+    [ dup win32-error-string windows-error ] unless-zero ;
 
 
-: n>win32-error-check ( n -- )
-    [ throw-windows-error ] unless-zero ;
+: win32-error ( -- )
+    GetLastError (win32-error) ;
 
 
-! Note that win32-error* words throw GetLastError code.
-: win32-error ( -- ) GetLastError n>win32-error-check ;
 : win32-error=0/f ( n -- ) { 0 f } member? [ win32-error ] when ;
 : win32-error>0 ( n -- ) 0 > [ win32-error ] when ;
 : win32-error<0 ( n -- ) 0 < [ win32-error ] when ;
 : win32-error=0/f ( n -- ) { 0 f } member? [ win32-error ] when ;
 : win32-error>0 ( n -- ) 0 > [ win32-error ] when ;
 : win32-error<0 ( n -- ) 0 < [ win32-error ] when ;
-: win32-error<>0 ( n -- ) [ win32-error ] unless-zero ;
+: win32-error<>0 ( n -- ) zero? [ win32-error ] unless ;
+
+: n>win32-error-check ( n -- )
+    dup ERROR_SUCCESS = [
+        drop
+    ] [
+        dup n>win32-error-string windows-error
+    ] if ;
 
 : check-invalid-handle ( handle -- handle )
     dup INVALID_HANDLE_VALUE = [ win32-error ] when ;
 
 : check-invalid-handle ( handle -- handle )
     dup INVALID_HANDLE_VALUE = [ win32-error ] when ;