diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-02-20 12:51:14 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-02-20 12:51:14 -0300 |
commit | 6769f3481701a17d15d513c5b875999d38d81877 (patch) | |
tree | aedeeba87f17a4633750f5d9fdd5d7d001326293 /opcode.c | |
parent | 0b110f7922b2e5c066f3b10f50e4d1079ccd7f93 (diff) | |
download | lua-6769f3481701a17d15d513c5b875999d38d81877.tar.gz lua-6769f3481701a17d15d513c5b875999d38d81877.tar.bz2 lua-6769f3481701a17d15d513c5b875999d38d81877.zip |
lua_Type is private (preparation for tags)
Diffstat (limited to 'opcode.c')
-rw-r--r-- | opcode.c | 45 |
1 files changed, 29 insertions, 16 deletions
@@ -3,7 +3,7 @@ | |||
3 | ** TecCGraf - PUC-Rio | 3 | ** TecCGraf - PUC-Rio |
4 | */ | 4 | */ |
5 | 5 | ||
6 | char *rcs_opcode="$Id: opcode.c,v 3.79 1997/01/31 14:27:11 roberto Exp roberto $"; | 6 | char *rcs_opcode="$Id: opcode.c,v 3.80 1997/02/11 11:35:05 roberto Exp roberto $"; |
7 | 7 | ||
8 | #include <setjmp.h> | 8 | #include <setjmp.h> |
9 | #include <stdio.h> | 9 | #include <stdio.h> |
@@ -671,20 +671,41 @@ lua_Object lua_getparam (int number) | |||
671 | return CLS_current.base-CLS_current.num+number; | 671 | return CLS_current.base-CLS_current.num+number; |
672 | } | 672 | } |
673 | 673 | ||
674 | int lua_isnumber (lua_Object object) | 674 | int lua_isnil (lua_Object o) |
675 | { | 675 | { |
676 | return (object != LUA_NOOBJECT) && (tonumber(Address(object)) == 0); | 676 | return (o!= LUA_NOOBJECT) && (tag(Address(o)) == LUA_T_NIL); |
677 | } | 677 | } |
678 | 678 | ||
679 | int lua_isstring (lua_Object object) | 679 | int lua_istable (lua_Object o) |
680 | { | 680 | { |
681 | int t = lua_type(object); | 681 | return (o!= LUA_NOOBJECT) && (tag(Address(o)) == LUA_T_ARRAY); |
682 | } | ||
683 | |||
684 | int lua_isuserdata (lua_Object o) | ||
685 | { | ||
686 | return (o!= LUA_NOOBJECT) && (tag(Address(o)) == LUA_T_USERDATA); | ||
687 | } | ||
688 | |||
689 | int lua_iscfunction (lua_Object o) | ||
690 | { | ||
691 | int t = lua_type(o); | ||
692 | return (t == LUA_T_CMARK) || (t == LUA_T_CFUNCTION); | ||
693 | } | ||
694 | |||
695 | int lua_isnumber (lua_Object o) | ||
696 | { | ||
697 | return (o!= LUA_NOOBJECT) && (tonumber(Address(o)) == 0); | ||
698 | } | ||
699 | |||
700 | int lua_isstring (lua_Object o) | ||
701 | { | ||
702 | int t = lua_type(o); | ||
682 | return (t == LUA_T_STRING) || (t == LUA_T_NUMBER); | 703 | return (t == LUA_T_STRING) || (t == LUA_T_NUMBER); |
683 | } | 704 | } |
684 | 705 | ||
685 | int lua_isfunction (lua_Object object) | 706 | int lua_isfunction (lua_Object o) |
686 | { | 707 | { |
687 | int t = lua_type(object); | 708 | int t = lua_type(o); |
688 | return (t == LUA_T_FUNCTION) || (t == LUA_T_CFUNCTION) || | 709 | return (t == LUA_T_FUNCTION) || (t == LUA_T_CFUNCTION) || |
689 | (t == LUA_T_MARK) || (t == LUA_T_CMARK); | 710 | (t == LUA_T_MARK) || (t == LUA_T_CMARK); |
690 | } | 711 | } |
@@ -734,14 +755,6 @@ lua_CFunction lua_getcfunction (lua_Object object) | |||
734 | else return (fvalue(Address(object))); | 755 | else return (fvalue(Address(object))); |
735 | } | 756 | } |
736 | 757 | ||
737 | /* | ||
738 | ** Given an object handle, return its user data. On error, return NULL. | ||
739 | */ | ||
740 | void *lua_getuserdata (lua_Object object) | ||
741 | { | ||
742 | return *(void **)lua_getbinarydata(object); | ||
743 | } | ||
744 | |||
745 | 758 | ||
746 | lua_Object lua_getref (int ref) | 759 | lua_Object lua_getref (int ref) |
747 | { | 760 | { |
@@ -888,7 +901,7 @@ int lua_type (lua_Object o) | |||
888 | lua_Type t = tag(Address(o)); | 901 | lua_Type t = tag(Address(o)); |
889 | if (t == LUA_T_USERDATA) | 902 | if (t == LUA_T_USERDATA) |
890 | return (Address(o))->value.ts->tag; | 903 | return (Address(o))->value.ts->tag; |
891 | else return tag(Address(o)); | 904 | else return t; |
892 | } | 905 | } |
893 | } | 906 | } |
894 | 907 | ||