mirror of
https://github.com/janet-lang/janet
synced 2025-08-28 00:22:26 +00:00
janet_marshal_bytes, janet_unmarshal_bytes size_t
Instead of a int32_t as the length argument, use size_t to match up better with typearray.c and probably most idiomatic C libraries. Janet uses int32_t for length internally for consistency, space efficiency, ability to fit int32_t in double, and various other reasons.
This commit is contained in:
parent
b57e530553
commit
c4f6f1d256
@ -299,9 +299,10 @@ void janet_marshal_byte(JanetMarshalContext *ctx, uint8_t value) {
|
|||||||
pushbyte(st, value);
|
pushbyte(st, value);
|
||||||
};
|
};
|
||||||
|
|
||||||
void janet_marshal_bytes(JanetMarshalContext *ctx, const uint8_t *bytes, int32_t len) {
|
void janet_marshal_bytes(JanetMarshalContext *ctx, const uint8_t *bytes, size_t len) {
|
||||||
MarshalState *st = (MarshalState *)(ctx->m_state);
|
MarshalState *st = (MarshalState *)(ctx->m_state);
|
||||||
pushbytes(st, bytes, len);
|
if (len > INT32_MAX) janet_panic("size_t too large to fit in buffer");
|
||||||
|
pushbytes(st, bytes, (int32_t) len);
|
||||||
}
|
}
|
||||||
|
|
||||||
void janet_marshal_janet(JanetMarshalContext *ctx, Janet x) {
|
void janet_marshal_janet(JanetMarshalContext *ctx, Janet x) {
|
||||||
@ -960,7 +961,7 @@ void janet_unmarshal_byte(JanetMarshalContext *ctx, uint8_t *b) {
|
|||||||
*b = *(ctx->data++);
|
*b = *(ctx->data++);
|
||||||
};
|
};
|
||||||
|
|
||||||
void janet_unmarshal_bytes(JanetMarshalContext *ctx, uint8_t *dest, int32_t len) {
|
void janet_unmarshal_bytes(JanetMarshalContext *ctx, uint8_t *dest, size_t len) {
|
||||||
UnmarshalState *st = (UnmarshalState *)(ctx->u_state);
|
UnmarshalState *st = (UnmarshalState *)(ctx->u_state);
|
||||||
MARSH_EOS(st, ctx->data + len - 1);
|
MARSH_EOS(st, ctx->data + len - 1);
|
||||||
memcpy(dest, ctx->data, len);
|
memcpy(dest, ctx->data, len);
|
||||||
|
@ -1259,13 +1259,13 @@ JANET_API FILE *janet_getfile(const Janet *argv, int32_t n, int *flags);
|
|||||||
JANET_API void janet_marshal_int(JanetMarshalContext *ctx, int32_t value);
|
JANET_API void janet_marshal_int(JanetMarshalContext *ctx, int32_t value);
|
||||||
JANET_API void janet_marshal_size(JanetMarshalContext *ctx, size_t value);
|
JANET_API void janet_marshal_size(JanetMarshalContext *ctx, size_t value);
|
||||||
JANET_API void janet_marshal_byte(JanetMarshalContext *ctx, uint8_t value);
|
JANET_API void janet_marshal_byte(JanetMarshalContext *ctx, uint8_t value);
|
||||||
JANET_API void janet_marshal_bytes(JanetMarshalContext *ctx, const uint8_t *bytes, int32_t len);
|
JANET_API void janet_marshal_bytes(JanetMarshalContext *ctx, const uint8_t *bytes, size_t len);
|
||||||
JANET_API void janet_marshal_janet(JanetMarshalContext *ctx, Janet x);
|
JANET_API void janet_marshal_janet(JanetMarshalContext *ctx, Janet x);
|
||||||
|
|
||||||
JANET_API void janet_unmarshal_int(JanetMarshalContext *ctx, int32_t *i);
|
JANET_API void janet_unmarshal_int(JanetMarshalContext *ctx, int32_t *i);
|
||||||
JANET_API void janet_unmarshal_size(JanetMarshalContext *ctx, size_t *i);
|
JANET_API void janet_unmarshal_size(JanetMarshalContext *ctx, size_t *i);
|
||||||
JANET_API void janet_unmarshal_byte(JanetMarshalContext *ctx, uint8_t *b);
|
JANET_API void janet_unmarshal_byte(JanetMarshalContext *ctx, uint8_t *b);
|
||||||
JANET_API void janet_unmarshal_bytes(JanetMarshalContext *ctx, uint8_t *dest, int32_t len);
|
JANET_API void janet_unmarshal_bytes(JanetMarshalContext *ctx, uint8_t *dest, size_t len);
|
||||||
JANET_API void janet_unmarshal_janet(JanetMarshalContext *ctx, Janet *out);
|
JANET_API void janet_unmarshal_janet(JanetMarshalContext *ctx, Janet *out);
|
||||||
|
|
||||||
JANET_API void janet_register_abstract_type(const JanetAbstractType *at);
|
JANET_API void janet_register_abstract_type(const JanetAbstractType *at);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user