225{
226 uint32_t
type = 0, num = 0;
227
228
229 if (!*isempty) return 0;
230
231 memcpy(&type, p, 4);
232 memcpy(&num, p+4, 4);
233
235 {
236
237 size_t lz = 8;
238 for ( uint32_t i = 0; i < num; i++ )
239 {
241 if (!*isempty)
242 return lz;
243 }
245 return lz;
246 }
247 else
248 {
249 size_t lz = 8;
250
251 if ( num == 0 )
252 {
254 }
255
256
257
258
259
261 {
262 for ( uint32_t i = 0; i < num; i++ )
263 {
264 uint32_t lrnum;
265 memcpy(&lrnum, p+lz, 4);
266 lz += 4;
267 if ( lrnum > 0 )
268 {
270 return lz;
271 }
272 }
274 }
275
276 else
277 {
279 }
280 return lz;
281 }
282}
static size_t gserialized2_is_empty_recurse(const uint8_t *p, int *isempty)
int lwtype_is_collection(uint8_t type)
Determine whether a type number is a collection or not.
#define LW_TRUE
Return types for functions with status returns.