Updates from BitShares FC #22

Closed
nathanielhourt wants to merge 693 commits from dapp-support into latest-fc
Showing only changes of commit bcce353b8f - Show all commits

View file

@ -359,32 +359,32 @@ public:
template<typename visitor> template<typename visitor>
static typename visitor::result_type visit( tag_type tag, visitor& v, void* data ) static typename visitor::result_type visit( tag_type tag, visitor& v, void* data )
{ {
static std::vector<std::function<typename visitor::result_type(visitor&,void*)>> wrappers = init_wrappers<visitor,void*,Types...>(); static auto wrappers = init_wrappers<visitor,void*,Types...>();
FC_ASSERT( tag < count(), "Unsupported type ${tag}!", ("tag",tag) ); FC_ASSERT( tag >= 0 && tag < count(), "Unsupported type ${tag}!", ("tag",tag) );
return wrappers[tag]( v, data ); return wrappers[tag]( v, data );
} }
template<typename visitor> template<typename visitor>
static typename visitor::result_type visit( tag_type tag, const visitor& v, void* data ) static typename visitor::result_type visit( tag_type tag, const visitor& v, void* data )
{ {
static std::vector<std::function<typename visitor::result_type(const visitor&,void*)>> wrappers = init_wrappers<const visitor,void*,Types...>(); static auto wrappers = init_wrappers<const visitor,void*,Types...>();
FC_ASSERT( tag < count(), "Unsupported type ${tag}!", ("tag",tag) ); FC_ASSERT( tag >= 0 && tag < count(), "Unsupported type ${tag}!", ("tag",tag) );
return wrappers[tag]( v, data ); return wrappers[tag]( v, data );
} }
template<typename visitor> template<typename visitor>
static typename visitor::result_type visit( tag_type tag, visitor& v, const void* data ) static typename visitor::result_type visit( tag_type tag, visitor& v, const void* data )
{ {
static std::vector<std::function<typename visitor::result_type(visitor&,const void*)>> wrappers = init_const_wrappers<visitor,const void*,Types...>(); static auto wrappers = init_const_wrappers<visitor,const void*,Types...>();
FC_ASSERT( tag < count(), "Unsupported type ${tag}!", ("tag",tag) ); FC_ASSERT( tag >= 0 && tag < count(), "Unsupported type ${tag}!", ("tag",tag) );
return wrappers[tag]( v, data ); return wrappers[tag]( v, data );
} }
template<typename visitor> template<typename visitor>
static typename visitor::result_type visit( tag_type tag, const visitor& v, const void* data ) static typename visitor::result_type visit( tag_type tag, const visitor& v, const void* data )
{ {
static std::vector<std::function<typename visitor::result_type(const visitor&,const void*)>> wrappers = init_const_wrappers<const visitor,const void*,Types...>(); static auto wrappers = init_const_wrappers<const visitor,const void*,Types...>();
FC_ASSERT( tag < count(), "Unsupported type ${tag}!", ("tag",tag) ); FC_ASSERT( tag >= 0 && tag < count(), "Unsupported type ${tag}!", ("tag",tag) );
return wrappers[tag]( v, data ); return wrappers[tag]( v, data );
} }