Details (comments)
diff --git a/lapi.c b/lapi.c
index 0ca9a32..ae6b07a 100644
--- a/lapi.c
+++ b/lapi.c
@@ -38,7 +38,11 @@
-/* test for a valid index */
+/*
+** Test for a valid index.
+** '!ttisnil(o)' implies 'o != &G(L)->nilvalue', so it is not needed.
+** However, it covers the most common cases in a faster way.
+*/
#define isvalid(L, o) (!ttisnil(o) || o != &G(L)->nilvalue)
diff --git a/llimits.h b/llimits.h
index e91310a..8ab58b5 100644
--- a/llimits.h
+++ b/llimits.h
@@ -298,7 +298,10 @@
** so it is better to use 'fmod'. 'fmod' gives the result of
** 'a - trunc(a/b)*b', and therefore must be corrected when
** 'trunc(a/b) ~= floor(a/b)'. That happens when the division has a
-** non-integer negative result, which is equivalent to the tests below.
+** non-integer negative result: non-integer result is equivalent to
+** a non-zero remainder 'm'; negative result is equivalent to 'a' and
+** 'b' with different signs, or 'm' and 'b' with different signs
+** (as the result 'm' of 'fmod' has the same sign of 'a').
*/
#if !defined(luai_nummod)
#define luai_nummod(L,a,b,m) \
diff --git a/lparser.c b/lparser.c
index 9f156dd..32500b0 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1171,9 +1171,9 @@
suffixedexp(ls, &nv.v);
if (!vkisindexed(nv.v.k))
check_conflict(ls, lh, &nv.v);
- luaE_incCcalls(ls->L); /* control recursion depth */
+ enterlevel(ls); /* control recursion depth */
assignment(ls, &nv, nvars+1);
- ls->L->nCcalls--;
+ leavelevel(ls);
}
else { /* assignment -> '=' explist */
int nexps;