diff --git a/compiler/C_CodeGen.jrag b/compiler/C_CodeGen.jrag index 5b04da8a379d738642a33ebc6859b8f7c4c0f491..a9362853472e44535510b5aaa0e6055eb0467f5a 100644 --- a/compiler/C_CodeGen.jrag +++ b/compiler/C_CodeGen.jrag @@ -807,7 +807,7 @@ aspect C_Signature { env.prefix + getName() + " = {"); env.indent(); env.println("LABCOMM_SAMPLE, \"" + getName() + "\","); - env.println("(int (*)(void *))labcomm_sizeof_" + + env.println("(int (*)(labcomm_signature_t *, void *))labcomm_sizeof_" + env.prefix + getName() + ","); env.println("sizeof(signature_bytes_" + getName() + "),"); env.println("signature_bytes_"+ getName()); @@ -905,7 +905,7 @@ aspect C_Sizeof { public void SampleDecl.C_emitSizeofDeclaration(C_env env) { env.println("extern int labcomm_sizeof_" + env.prefix + getName() + - "(" + env.prefix + getName() + " *v);"); + "(labcomm_signature_t *sig, " + env.prefix + getName() + " *v);"); } public int Decl.C_fixedSizeof() { @@ -966,7 +966,7 @@ aspect C_Sizeof { public void SampleDecl.C_emitSizeof(C_env env) { env = env.nestStruct("(*v)"); env.println("int labcomm_sizeof_" + env.prefix + getName() + - "(" + env.prefix + getName() + " *v)"); + "(labcomm_signature_t *sig, " + env.prefix + getName() + " *v)"); env.println("{"); env.indent(); if (C_isDynamic()) { diff --git a/lib/c/labcomm.h b/lib/c/labcomm.h index 1d4740f36a42394369d96c704772d4b3cd15f79f..ee0a589ce6ce0d6eca4c11428b42823bef2045bb 100644 --- a/lib/c/labcomm.h +++ b/lib/c/labcomm.h @@ -23,17 +23,14 @@ struct labcomm_decoder; /* * Signature entry */ -typedef struct { +typedef struct labcomm_signature{ int type; char *name; - int (*encoded_size)(void *); + int (*encoded_size)(struct labcomm_signature *, void *); // void * == encoded_sample * int size; unsigned char *signature; } labcomm_signature_t; -//TODO: something along the lines of... -void labcomm_encode_signature(struct labcomm_encoder*, labcomm_signature_t*); - /* * Error handling. */