diff options
Diffstat (limited to 'src/lj_api.c')
-rw-r--r-- | src/lj_api.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/src/lj_api.c b/src/lj_api.c index edb2d620..8aaafdc5 100644 --- a/src/lj_api.c +++ b/src/lj_api.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include "lj_trace.h" | 24 | #include "lj_trace.h" |
25 | #include "lj_vm.h" | 25 | #include "lj_vm.h" |
26 | #include "lj_strscan.h" | 26 | #include "lj_strscan.h" |
27 | #include "lj_strfmt.h" | ||
27 | 28 | ||
28 | /* -- Common helper functions --------------------------------------------- */ | 29 | /* -- Common helper functions --------------------------------------------- */ |
29 | 30 | ||
@@ -434,7 +435,7 @@ LUA_API const char *lua_tolstring(lua_State *L, int idx, size_t *len) | |||
434 | } else if (tvisnumber(o)) { | 435 | } else if (tvisnumber(o)) { |
435 | lj_gc_check(L); | 436 | lj_gc_check(L); |
436 | o = index2adr(L, idx); /* GC may move the stack. */ | 437 | o = index2adr(L, idx); /* GC may move the stack. */ |
437 | s = lj_str_fromnumber(L, o); | 438 | s = lj_strfmt_number(L, o); |
438 | setstrV(L, o, s); | 439 | setstrV(L, o, s); |
439 | } else { | 440 | } else { |
440 | if (len != NULL) *len = 0; | 441 | if (len != NULL) *len = 0; |
@@ -453,7 +454,7 @@ LUALIB_API const char *luaL_checklstring(lua_State *L, int idx, size_t *len) | |||
453 | } else if (tvisnumber(o)) { | 454 | } else if (tvisnumber(o)) { |
454 | lj_gc_check(L); | 455 | lj_gc_check(L); |
455 | o = index2adr(L, idx); /* GC may move the stack. */ | 456 | o = index2adr(L, idx); /* GC may move the stack. */ |
456 | s = lj_str_fromnumber(L, o); | 457 | s = lj_strfmt_number(L, o); |
457 | setstrV(L, o, s); | 458 | setstrV(L, o, s); |
458 | } else { | 459 | } else { |
459 | lj_err_argt(L, idx, LUA_TSTRING); | 460 | lj_err_argt(L, idx, LUA_TSTRING); |
@@ -475,7 +476,7 @@ LUALIB_API const char *luaL_optlstring(lua_State *L, int idx, | |||
475 | } else if (tvisnumber(o)) { | 476 | } else if (tvisnumber(o)) { |
476 | lj_gc_check(L); | 477 | lj_gc_check(L); |
477 | o = index2adr(L, idx); /* GC may move the stack. */ | 478 | o = index2adr(L, idx); /* GC may move the stack. */ |
478 | s = lj_str_fromnumber(L, o); | 479 | s = lj_strfmt_number(L, o); |
479 | setstrV(L, o, s); | 480 | setstrV(L, o, s); |
480 | } else { | 481 | } else { |
481 | lj_err_argt(L, idx, LUA_TSTRING); | 482 | lj_err_argt(L, idx, LUA_TSTRING); |
@@ -507,7 +508,7 @@ LUA_API size_t lua_objlen(lua_State *L, int idx) | |||
507 | } else if (tvisudata(o)) { | 508 | } else if (tvisudata(o)) { |
508 | return udataV(o)->len; | 509 | return udataV(o)->len; |
509 | } else if (tvisnumber(o)) { | 510 | } else if (tvisnumber(o)) { |
510 | GCstr *s = lj_str_fromnumber(L, o); | 511 | GCstr *s = lj_strfmt_number(L, o); |
511 | setstrV(L, o, s); | 512 | setstrV(L, o, s); |
512 | return s->len; | 513 | return s->len; |
513 | } else { | 514 | } else { |
@@ -545,17 +546,7 @@ LUA_API lua_State *lua_tothread(lua_State *L, int idx) | |||
545 | 546 | ||
546 | LUA_API const void *lua_topointer(lua_State *L, int idx) | 547 | LUA_API const void *lua_topointer(lua_State *L, int idx) |
547 | { | 548 | { |
548 | cTValue *o = index2adr(L, idx); | 549 | return lj_obj_ptr(index2adr(L, idx)); |
549 | if (tvisudata(o)) | ||
550 | return uddata(udataV(o)); | ||
551 | else if (tvislightud(o)) | ||
552 | return lightudV(o); | ||
553 | else if (tviscdata(o)) | ||
554 | return cdataptr(cdataV(o)); | ||
555 | else if (tvisgcv(o)) | ||
556 | return gcV(o); | ||
557 | else | ||
558 | return NULL; | ||
559 | } | 550 | } |
560 | 551 | ||
561 | /* -- Stack setters (object creation) ------------------------------------- */ | 552 | /* -- Stack setters (object creation) ------------------------------------- */ |
@@ -606,7 +597,7 @@ LUA_API const char *lua_pushvfstring(lua_State *L, const char *fmt, | |||
606 | va_list argp) | 597 | va_list argp) |
607 | { | 598 | { |
608 | lj_gc_check(L); | 599 | lj_gc_check(L); |
609 | return lj_str_pushvf(L, fmt, argp); | 600 | return lj_strfmt_pushvf(L, fmt, argp); |
610 | } | 601 | } |
611 | 602 | ||
612 | LUA_API const char *lua_pushfstring(lua_State *L, const char *fmt, ...) | 603 | LUA_API const char *lua_pushfstring(lua_State *L, const char *fmt, ...) |
@@ -615,7 +606,7 @@ LUA_API const char *lua_pushfstring(lua_State *L, const char *fmt, ...) | |||
615 | va_list argp; | 606 | va_list argp; |
616 | lj_gc_check(L); | 607 | lj_gc_check(L); |
617 | va_start(argp, fmt); | 608 | va_start(argp, fmt); |
618 | ret = lj_str_pushvf(L, fmt, argp); | 609 | ret = lj_strfmt_pushvf(L, fmt, argp); |
619 | va_end(argp); | 610 | va_end(argp); |
620 | return ret; | 611 | return ret; |
621 | } | 612 | } |