示例#1
0
static void ReadBytesNativeString(void *addr, UInt size) {
  Obj str = TLS(SerializationObj);
  UInt max = GET_LEN_STRING(str);
  UInt off = TLS(SerializationIndex);
  if (off + size > max)
    DeserializationError();
  memcpy(addr, CSTR_STRING(str)+off, size);
  TLS(SerializationIndex) += size;
}
示例#2
0
static UInt ReadByteBlockLengthNativeString() {
  UInt len;
  ReadBytesNativeString(&len, sizeof(len));
  /* The following is to prevent out-of-memory errors on malformed input,
   * where incorrect values can result in huge length values: */
  if (len + TLS(SerializationIndex) > GET_LEN_STRING(TLS(SerializationObj)))
    DeserializationError();
  return len;
}
示例#3
0
文件: serialize.c 项目: dimpase/gap
static void ReadBytesNativeString(void * addr, UInt size)
{
    Obj  str = MODULE_STATE(Serialize).obj;
    UInt max = GET_LEN_STRING(str);
    UInt off = MODULE_STATE(Serialize).index;
    if (off + size > max)
        DeserializationError();
    memcpy(addr, CONST_CSTR_STRING(str) + off, size);
    MODULE_STATE(Serialize).index += size;
}