fix in blob

This commit is contained in:
albertodemichelis 2017-11-17 03:55:59 +08:00
parent 3c2de4bd59
commit d2de0ef10d
2 changed files with 8 additions and 2 deletions

View File

@ -82,6 +82,12 @@ static SQInteger _blob__get(HSQUIRRELVM v)
{
SETUP_BLOB(v);
SQInteger idx;
if ((sq_gettype(v, 2) & SQOBJECT_NUMERIC) == 0)
{
sq_pushnull(v);
return sq_throwobject(v);
}
sq_getinteger(v,2,&idx);
if(idx < 0 || idx >= self->Len())
return sq_throwerror(v,_SC("index out of range"));
@ -168,7 +174,7 @@ static const SQRegFunction _blob_methods[] = {
_DECL_BLOB_FUNC(swap2,1,_SC("x")),
_DECL_BLOB_FUNC(swap4,1,_SC("x")),
_DECL_BLOB_FUNC(_set,3,_SC("xnn")),
_DECL_BLOB_FUNC(_get,2,_SC("xn")),
_DECL_BLOB_FUNC(_get,2,_SC("x.")),
_DECL_BLOB_FUNC(_typeof,1,_SC("x")),
_DECL_BLOB_FUNC(_nexti,2,_SC("x")),
_DECL_BLOB_FUNC(_cloned,2,_SC("xx")),

View File

@ -88,7 +88,7 @@ struct SQBlob : public SQStream
return 0;
}
bool IsValid() {
return _buf?true:false;
return _size == 0 || _buf?true:false;
}
bool EOS() {
return _ptr == _size;