impress/vendor/gems/RocketAMF-1.0.0/ext/rocketamf_ext/deserializer.h
Emi Matchu b1f06029f8 Moderize RocketAMF C types to fix build error
I'm not sure if this is a Mac-only problem or what, but we were getting incompatible-function-pointer errors when trying to build the RocketAMF C extensions. This fixes that! (Maybe it's like, Mac-only but as of Ruby 3.4 in specific? We're running RocketAMF in production on Ruby 3.4 right now without this. Shrug.)
2025-10-30 02:45:56 +00:00

28 lines
No EOL
814 B
C

#include <ruby.h>
#ifdef HAVE_RB_STR_ENCODE
#include <ruby/encoding.h>
#endif
typedef struct {
int version;
VALUE class_mapper;
VALUE src;
char* stream;
unsigned long pos;
unsigned long size;
VALUE obj_cache;
VALUE str_cache;
VALUE trait_cache;
} AMF_DESERIALIZER;
char des_read_byte(AMF_DESERIALIZER *des);
char des_read_ahead_byte(AMF_DESERIALIZER *des);
int des_read_uint16(AMF_DESERIALIZER *des);
unsigned int des_read_uint32(AMF_DESERIALIZER *des);
double des_read_double(AMF_DESERIALIZER *des);
int des_read_int(AMF_DESERIALIZER *des);
VALUE des_read_string(AMF_DESERIALIZER *des, unsigned int len);
VALUE des_read_sym(AMF_DESERIALIZER *des, unsigned int len);
void des_set_src(AMF_DESERIALIZER *des, VALUE src);
VALUE des_deserialize(VALUE self, VALUE ver, VALUE src);