diff options
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 91 |
1 files changed, 90 insertions, 1 deletions
diff --git a/src/data.c b/src/data.c index 9f756de014a..955c39727bb 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -76,7 +76,8 @@ static Lisp_Object Qprocess, Qmarker; | |||
| 76 | static Lisp_Object Qcompiled_function, Qframe; | 76 | static Lisp_Object Qcompiled_function, Qframe; |
| 77 | Lisp_Object Qbuffer; | 77 | Lisp_Object Qbuffer; |
| 78 | static Lisp_Object Qchar_table, Qbool_vector, Qhash_table; | 78 | static Lisp_Object Qchar_table, Qbool_vector, Qhash_table; |
| 79 | static Lisp_Object Qsubrp, Qmany, Qunevalled; | 79 | static Lisp_Object Qsubrp; |
| 80 | static Lisp_Object Qmany, Qunevalled; | ||
| 80 | Lisp_Object Qfont_spec, Qfont_entity, Qfont_object; | 81 | Lisp_Object Qfont_spec, Qfont_entity, Qfont_object; |
| 81 | static Lisp_Object Qdefun; | 82 | static Lisp_Object Qdefun; |
| 82 | 83 | ||
| @@ -85,6 +86,94 @@ static Lisp_Object Qdefalias_fset_function; | |||
| 85 | 86 | ||
| 86 | static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *); | 87 | static void swap_in_symval_forwarding (struct Lisp_Symbol *, struct Lisp_Buffer_Local_Value *); |
| 87 | 88 | ||
| 89 | static bool | ||
| 90 | BOOLFWDP (union Lisp_Fwd *a) | ||
| 91 | { | ||
| 92 | return XFWDTYPE (a) == Lisp_Fwd_Bool; | ||
| 93 | } | ||
| 94 | static bool | ||
| 95 | INTFWDP (union Lisp_Fwd *a) | ||
| 96 | { | ||
| 97 | return XFWDTYPE (a) == Lisp_Fwd_Int; | ||
| 98 | } | ||
| 99 | static bool | ||
| 100 | KBOARD_OBJFWDP (union Lisp_Fwd *a) | ||
| 101 | { | ||
| 102 | return XFWDTYPE (a) == Lisp_Fwd_Kboard_Obj; | ||
| 103 | } | ||
| 104 | static bool | ||
| 105 | OBJFWDP (union Lisp_Fwd *a) | ||
| 106 | { | ||
| 107 | return XFWDTYPE (a) == Lisp_Fwd_Obj; | ||
| 108 | } | ||
| 109 | |||
| 110 | static struct Lisp_Boolfwd * | ||
| 111 | XBOOLFWD (union Lisp_Fwd *a) | ||
| 112 | { | ||
| 113 | eassert (BOOLFWDP (a)); | ||
| 114 | return &a->u_boolfwd; | ||
| 115 | } | ||
| 116 | static struct Lisp_Kboard_Objfwd * | ||
| 117 | XKBOARD_OBJFWD (union Lisp_Fwd *a) | ||
| 118 | { | ||
| 119 | eassert (KBOARD_OBJFWDP (a)); | ||
| 120 | return &a->u_kboard_objfwd; | ||
| 121 | } | ||
| 122 | static struct Lisp_Intfwd * | ||
| 123 | XINTFWD (union Lisp_Fwd *a) | ||
| 124 | { | ||
| 125 | eassert (INTFWDP (a)); | ||
| 126 | return &a->u_intfwd; | ||
| 127 | } | ||
| 128 | static struct Lisp_Objfwd * | ||
| 129 | XOBJFWD (union Lisp_Fwd *a) | ||
| 130 | { | ||
| 131 | eassert (OBJFWDP (a)); | ||
| 132 | return &a->u_objfwd; | ||
| 133 | } | ||
| 134 | |||
| 135 | static void | ||
| 136 | CHECK_SUBR (Lisp_Object x) | ||
| 137 | { | ||
| 138 | CHECK_TYPE (SUBRP (x), Qsubrp, x); | ||
| 139 | } | ||
| 140 | |||
| 141 | static void | ||
| 142 | set_blv_found (struct Lisp_Buffer_Local_Value *blv, int found) | ||
| 143 | { | ||
| 144 | eassert (found == !EQ (blv->defcell, blv->valcell)); | ||
| 145 | blv->found = found; | ||
| 146 | } | ||
| 147 | |||
| 148 | static Lisp_Object | ||
| 149 | blv_value (struct Lisp_Buffer_Local_Value *blv) | ||
| 150 | { | ||
| 151 | return XCDR (blv->valcell); | ||
| 152 | } | ||
| 153 | |||
| 154 | static void | ||
| 155 | set_blv_value (struct Lisp_Buffer_Local_Value *blv, Lisp_Object val) | ||
| 156 | { | ||
| 157 | XSETCDR (blv->valcell, val); | ||
| 158 | } | ||
| 159 | |||
| 160 | static void | ||
| 161 | set_blv_where (struct Lisp_Buffer_Local_Value *blv, Lisp_Object val) | ||
| 162 | { | ||
| 163 | blv->where = val; | ||
| 164 | } | ||
| 165 | |||
| 166 | static void | ||
| 167 | set_blv_defcell (struct Lisp_Buffer_Local_Value *blv, Lisp_Object val) | ||
| 168 | { | ||
| 169 | blv->defcell = val; | ||
| 170 | } | ||
| 171 | |||
| 172 | static void | ||
| 173 | set_blv_valcell (struct Lisp_Buffer_Local_Value *blv, Lisp_Object val) | ||
| 174 | { | ||
| 175 | blv->valcell = val; | ||
| 176 | } | ||
| 88 | 177 | ||
| 89 | Lisp_Object | 178 | Lisp_Object |
| 90 | wrong_type_argument (register Lisp_Object predicate, register Lisp_Object value) | 179 | wrong_type_argument (register Lisp_Object predicate, register Lisp_Object value) |