aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/ext_ffi_api.html10
-rw-r--r--src/lib_ffi.c5
2 files changed, 10 insertions, 5 deletions
diff --git a/doc/ext_ffi_api.html b/doc/ext_ffi_api.html
index 2d69cb49..e865a5f7 100644
--- a/doc/ext_ffi_api.html
+++ b/doc/ext_ffi_api.html
@@ -336,14 +336,16 @@ objects.
336 336
337<h2 id="util">Utility Functions</h2> 337<h2 id="util">Utility Functions</h2>
338 338
339<h3 id="ffi_errno"><tt>err = ffi.errno()</tt></h3> 339<h3 id="ffi_errno"><tt>err = ffi.errno([newerr])</tt></h3>
340<p> 340<p>
341Returns the error number set by the last C&nbsp;function call which 341Returns the error number set by the last C&nbsp;function call which
342indicated an error condition. 342indicated an error condition. If the optional <tt>newerr</tt> argument
343is present, the error number is set to the new value and the previous
344value is returned.
343</p> 345</p>
344<p> 346<p>
345This function offers a portable and OS-independent way to get the error 347This function offers a portable and OS-independent way to get and set the
346number. Note that only <em>some</em> C&nbsp;functions set the error 348error number. Note that only <em>some</em> C&nbsp;functions set the error
347number. And it's only significant if the function actually indicated an 349number. And it's only significant if the function actually indicated an
348error condition (e.g. with a return value of <tt>-1</tt> or 350error condition (e.g. with a return value of <tt>-1</tt> or
349<tt>NULL</tt>). Otherwise, it may or may not contain any previously set 351<tt>NULL</tt>). Otherwise, it may or may not contain any previously set
diff --git a/src/lib_ffi.c b/src/lib_ffi.c
index 321de499..0f8d5013 100644
--- a/src/lib_ffi.c
+++ b/src/lib_ffi.c
@@ -545,7 +545,10 @@ LJLIB_CF(ffi_offsetof)
545 545
546LJLIB_CF(ffi_errno) 546LJLIB_CF(ffi_errno)
547{ 547{
548 setintV(L->top++, errno); 548 int err = errno;
549 if (L->top > L->base)
550 errno = ffi_checkint(L, 1);
551 setintV(L->top++, err);
549 return 1; 552 return 1;
550} 553}
551 554