@@ -33,7 +33,7 @@ public: | |||||
void rewind() override { std::rewind(m_fptr); } | void rewind() override { std::rewind(m_fptr); } | ||||
void skip(size_t bytes) override { | |||||
void skip(int64_t bytes) override { | |||||
auto err = fseek(m_fptr, bytes, SEEK_CUR); | auto err = fseek(m_fptr, bytes, SEEK_CUR); | ||||
mgb_assert(!err); | mgb_assert(!err); | ||||
} | } | ||||
@@ -104,7 +104,7 @@ public: | |||||
void rewind() override { m_offset = 0; } | void rewind() override { m_offset = 0; } | ||||
void skip(size_t bytes) override { | |||||
void skip(int64_t bytes) override { | |||||
m_offset += bytes; | m_offset += bytes; | ||||
mgb_assert(m_offset <= m_size); | mgb_assert(m_offset <= m_size); | ||||
} | } | ||||
@@ -146,7 +146,7 @@ public: | |||||
m_offset = 0; | m_offset = 0; | ||||
} | } | ||||
void skip(size_t bytes) override { | |||||
void skip(int64_t bytes) override { | |||||
m_offset += bytes; | m_offset += bytes; | ||||
mgb_assert(m_offset <= m_size); | mgb_assert(m_offset <= m_size); | ||||
} | } | ||||
@@ -838,25 +838,22 @@ GraphLoader::LoadResult GraphLoaderOSS::load(const LoadConfig& config, bool rewi | |||||
// Read fbs::Graph | // Read fbs::Graph | ||||
uint32_t size; | uint32_t size; | ||||
m_file->read(&size, sizeof(size)); | m_file->read(&size, sizeof(size)); | ||||
m_graph_buf = m_file->read_shared(size); | |||||
m_file->skip(-sizeof(size)); | |||||
m_graph_buf = m_file->read_shared(size + sizeof(size)); | |||||
// Rewind back to tensor data | // Rewind back to tensor data | ||||
m_file->rewind(); | m_file->rewind(); | ||||
m_file->skip(tensor_begin); | m_file->skip(tensor_begin); | ||||
mgb_throw_if( | |||||
!fbs::GraphBufferHasIdentifier(m_graph_buf.data()), SerializationError, | |||||
"invalid fbs model"); | |||||
{ | { | ||||
flatbuffers::Verifier verifier( | flatbuffers::Verifier verifier( | ||||
static_cast<const uint8_t*>(m_graph_buf.data()), m_graph_buf.size()); | static_cast<const uint8_t*>(m_graph_buf.data()), m_graph_buf.size()); | ||||
mgb_throw_if( | mgb_throw_if( | ||||
!fbs::VerifyGraphBuffer(verifier), SerializationError, | |||||
!fbs::VerifySizePrefixedGraphBuffer(verifier), SerializationError, | |||||
"model verification failed (invalid or corrupted model?)"); | "model verification failed (invalid or corrupted model?)"); | ||||
} | } | ||||
m_graph = fbs::GetGraph(m_graph_buf.data()); | |||||
m_graph = fbs::GetSizePrefixedGraph(m_graph_buf.data()); | |||||
m_mgb_version = m_graph->mgb_version(); | m_mgb_version = m_graph->mgb_version(); | ||||
if (m_graph->mgb_version() > MGB_VERSION) { | if (m_graph->mgb_version() > MGB_VERSION) { | ||||
mgb_log_warn( | mgb_log_warn( | ||||
@@ -801,21 +801,18 @@ GraphLoader::LoadResult GraphLoaderOSSV2::load(const LoadConfig& config, bool re | |||||
// Read fbs::Graph | // Read fbs::Graph | ||||
uint32_t size; | uint32_t size; | ||||
m_file->read(&size, sizeof(size)); | m_file->read(&size, sizeof(size)); | ||||
m_model_buf = m_file->read_shared(size); | |||||
mgb_throw_if( | |||||
!fbs::v2::ModelBufferHasIdentifier(m_model_buf.data()), SerializationError, | |||||
"invalid fbs model"); | |||||
m_file->skip(-sizeof(size)); | |||||
m_model_buf = m_file->read_shared(size + sizeof(size)); | |||||
{ | { | ||||
flatbuffers::Verifier verifier( | flatbuffers::Verifier verifier( | ||||
static_cast<const uint8_t*>(m_model_buf.data()), m_model_buf.size()); | static_cast<const uint8_t*>(m_model_buf.data()), m_model_buf.size()); | ||||
mgb_throw_if( | mgb_throw_if( | ||||
!fbs::v2::VerifyModelBuffer(verifier), SerializationError, | |||||
!fbs::v2::VerifySizePrefixedModelBuffer(verifier), SerializationError, | |||||
"model verification failed (invalid or corrupted model?)"); | "model verification failed (invalid or corrupted model?)"); | ||||
} | } | ||||
m_model = fbs::v2::GetModel(m_model_buf.data()); | |||||
m_model = fbs::v2::GetSizePrefixedModel(m_model_buf.data()); | |||||
m_mgb_version = m_model->mge_version(); | m_mgb_version = m_model->mge_version(); | ||||
m_model_version = m_model->model_version(); | m_model_version = m_model->model_version(); | ||||
if (m_model->mge_version() > MGB_VERSION) { | if (m_model->mge_version() > MGB_VERSION) { | ||||
@@ -33,7 +33,7 @@ public: | |||||
virtual void rewind() = 0; | virtual void rewind() = 0; | ||||
//! skip given number of bytes | //! skip given number of bytes | ||||
virtual void skip(size_t bytes) = 0; | |||||
virtual void skip(int64_t bytes) = 0; | |||||
//! read data into buffer | //! read data into buffer | ||||
virtual void read(void* dst, size_t size) = 0; | virtual void read(void* dst, size_t size) = 0; | ||||
@@ -217,10 +217,10 @@ if(NOT DEFINED IOS_DEPLOYMENT_TARGET) | |||||
"2.0" | "2.0" | ||||
CACHE STRING "Minimum iOS version to build for.") | CACHE STRING "Minimum iOS version to build for.") | ||||
else() | else() | ||||
# Unless specified, SDK version 10.0 is used by default as minimum target version | |||||
# Unless specified, SDK version 11.0 is used by default as minimum target version | |||||
# (iOS, tvOS). | # (iOS, tvOS). | ||||
set(IOS_DEPLOYMENT_TARGET | set(IOS_DEPLOYMENT_TARGET | ||||
"10.0" | |||||
"11.0" | |||||
CACHE STRING "Minimum iOS version to build for.") | CACHE STRING "Minimum iOS version to build for.") | ||||
endif() | endif() | ||||
message( | message( | ||||