Esempio n. 1
0
File: lzlib.c Progetto: moteus/lzlib
/* ====================================================================== */
static int lzlib_crc32(lua_State *L)
{
    if (lua_gettop(L) == 0)
    {
        /* crc32 initial value */
        push_u32(L, crc32(0L, Z_NULL, 0));
    }
    else
    {
        /* update crc32 checksum */
        size_t len;
        uLong crc = check_u32(L, 1);

        const unsigned char* buf = (unsigned char*)luaL_checklstring(L, 2, &len);

        push_u32(L, crc32(crc, buf, len));
    }
    return 1;
}
Esempio n. 2
0
static bool push_foo(char **p, size_t *len, const struct foo *foo)
{
	return push_u64(p, len, foo->vu64) &&
		push_u32(p, len, foo->vu32) &&
		push_u16(p, len, foo->vu16) &&
		push_u8(p, len, foo->vu8) &&
		push_uchar(p, len, foo->vuchar) &&
		push_s64(p, len, foo->vs64) &&
		push_s32(p, len, foo->vs32) &&
		push_s16(p, len, foo->vs16) &&
		push_s8(p, len, foo->vs8) &&
		push_char(p, len, foo->vchar) &&
		push_bytes(p, len, foo->bytes, sizeof(foo->bytes));
}