| 1244 | } |
| 1245 | |
| 1246 | PB_API pb_Type *pb_newtype(pb_State *S, pb_Name *tname) { |
| 1247 | pb_TypeEntry *te; |
| 1248 | pb_Type *t; |
| 1249 | if (tname == NULL) return NULL; |
| 1250 | te = (pb_TypeEntry*)pb_settable(&S->types, (pb_Key)tname); |
| 1251 | if (te == NULL) return NULL; |
| 1252 | if ((t = te->value) != NULL) return t->is_dead = 0, t; |
| 1253 | if (!(t = (pb_Type*)pb_poolalloc(&S->typepool))) return NULL; |
| 1254 | pbT_inittype(t); |
| 1255 | t->name = tname; |
| 1256 | t->basename = pbT_basename((const char*)tname); |
| 1257 | return te->value = t; |
| 1258 | } |
| 1259 | |
| 1260 | PB_API void pb_delsort(pb_Type *t) { |
| 1261 | if (t->field_sort) { |
no test coverage detected