Fix printf format warnings.

We can't print function pointer addresses at all, since converting
a function pointer to a void* is forbidden with ANSI C, so we only
print the function name.
This commit is contained in:
Tor Andersson
2016-12-23 16:28:15 +01:00
committed by Tor Andersson
parent 86feee5b7b
commit 12a66c0a21
2 changed files with 7 additions and 7 deletions

View File

@@ -810,26 +810,26 @@ void js_dumpvalue(js_State *J, js_Value v)
break;
}
switch (v.u.object->type) {
case JS_COBJECT: printf("[Object %p]", v.u.object); break;
case JS_CARRAY: printf("[Array %p]", v.u.object); break;
case JS_COBJECT: printf("[Object %p]", (void*)v.u.object); break;
case JS_CARRAY: printf("[Array %p]", (void*)v.u.object); break;
case JS_CFUNCTION:
printf("[Function %p, %s, %s:%d]",
v.u.object,
(void*)v.u.object,
v.u.object->u.f.function->name,
v.u.object->u.f.function->filename,
v.u.object->u.f.function->line);
break;
case JS_CSCRIPT: printf("[Script %s]", v.u.object->u.f.function->filename); break;
case JS_CCFUNCTION: printf("[CFunction %p]", v.u.object->u.c.function); break;
case JS_CCFUNCTION: printf("[CFunction %s]", v.u.object->u.c.name); break;
case JS_CBOOLEAN: printf("[Boolean %d]", v.u.object->u.boolean); break;
case JS_CNUMBER: printf("[Number %g]", v.u.object->u.number); break;
case JS_CSTRING: printf("[String'%s']", v.u.object->u.s.string); break;
case JS_CERROR: printf("[Error %s]", v.u.object->u.s.string); break;
case JS_CITERATOR: printf("[Iterator %p]", v.u.object); break;
case JS_CITERATOR: printf("[Iterator %p]", (void*)v.u.object); break;
case JS_CUSERDATA:
printf("[Userdata %s %p]", v.u.object->u.user.tag, v.u.object->u.user.data);
break;
default: printf("[Object %p]", v.u.object); break;
default: printf("[Object %p]", (void*)v.u.object); break;
}
break;
}

View File

@@ -159,7 +159,7 @@ static void Sp_lastIndexOf(js_State *J)
{
const char *haystack = checkstring(J, 0);
const char *needle = js_tostring(J, 1);
int pos = js_isdefined(J, 2) ? js_tointeger(J, 2) : strlen(haystack);
int pos = js_isdefined(J, 2) ? js_tointeger(J, 2) : (int)strlen(haystack);
int len = strlen(needle);
int k = 0, last = -1;
Rune rune;