update sproto double array (#1227)

Co-authored-by: zixun <lvzxiun@gmail.com>
This commit is contained in:
子熏
2020-08-03 22:54:04 +08:00
committed by GitHub
parent 950389599d
commit 44485b195c
3 changed files with 8 additions and 6 deletions

View File

@@ -242,7 +242,7 @@ encode(const struct sproto_arg *args) {
return 8; return 8;
} }
} }
case SPROTO_DOUBLE: { case SPROTO_TDOUBLE: {
lua_Number v = lua_tonumber(L, -1); lua_Number v = lua_tonumber(L, -1);
*(double*)args->value = (double)v; *(double*)args->value = (double)v;
return 8; return 8;
@@ -407,7 +407,7 @@ decode(const struct sproto_arg *args) {
} }
break; break;
} }
case SPROTO_DOUBLE: { case SPROTO_TDOUBLE: {
double v = *(double*)args->value; double v = *(double*)args->value;
lua_pushnumber(L, v); lua_pushnumber(L, v);
break; break;
@@ -688,7 +688,7 @@ push_default(const struct sproto_arg *args, int array) {
else else
lua_pushinteger(L, 0); lua_pushinteger(L, 0);
break; break;
case SPROTO_DOUBLE: case SPROTO_TDOUBLE:
lua_pushnumber(L, 0.0); lua_pushnumber(L, 0.0);
break; break;
case SPROTO_TBOOLEAN: case SPROTO_TBOOLEAN:

View File

@@ -849,6 +849,7 @@ encode_array(sproto_callback cb, struct sproto_arg *args, uint8_t *data, int siz
size -= SIZEOF_LENGTH; size -= SIZEOF_LENGTH;
buffer = data + SIZEOF_LENGTH; buffer = data + SIZEOF_LENGTH;
switch (args->type) { switch (args->type) {
case SPROTO_TDOUBLE:
case SPROTO_TINTEGER: { case SPROTO_TINTEGER: {
int noarray; int noarray;
buffer = encode_integer_array(cb,args,buffer,size, &noarray); buffer = encode_integer_array(cb,args,buffer,size, &noarray);
@@ -944,7 +945,7 @@ sproto_encode(const struct sproto_type *st, void * buffer, int size, sproto_call
args.type = type; args.type = type;
args.index = 0; args.index = 0;
switch(type) { switch(type) {
case SPROTO_DOUBLE: case SPROTO_TDOUBLE:
case SPROTO_TINTEGER: case SPROTO_TINTEGER:
case SPROTO_TBOOLEAN: { case SPROTO_TBOOLEAN: {
union { union {
@@ -1067,6 +1068,7 @@ decode_array(sproto_callback cb, struct sproto_arg *args, uint8_t * stream) {
} }
stream += SIZEOF_LENGTH; stream += SIZEOF_LENGTH;
switch (type) { switch (type) {
case SPROTO_TDOUBLE:
case SPROTO_TINTEGER: { case SPROTO_TINTEGER: {
int len = *stream; int len = *stream;
++stream; ++stream;
@@ -1178,7 +1180,7 @@ sproto_decode(const struct sproto_type *st, const void * data, int size, sproto_
} }
} else { } else {
switch (f->type) { switch (f->type) {
case SPROTO_DOUBLE: case SPROTO_TDOUBLE:
case SPROTO_TINTEGER: { case SPROTO_TINTEGER: {
uint32_t sz = todword(currentdata); uint32_t sz = todword(currentdata);
if (sz == SIZEOF_INT32) { if (sz == SIZEOF_INT32) {

View File

@@ -13,7 +13,7 @@ struct sproto_type;
#define SPROTO_TINTEGER 0 #define SPROTO_TINTEGER 0
#define SPROTO_TBOOLEAN 1 #define SPROTO_TBOOLEAN 1
#define SPROTO_TSTRING 2 #define SPROTO_TSTRING 2
#define SPROTO_DOUBLE 3 #define SPROTO_TDOUBLE 3
#define SPROTO_TSTRUCT 4 #define SPROTO_TSTRUCT 4
// sub type of string (sproto_arg.extra) // sub type of string (sproto_arg.extra)