various bug fixes

This commit is contained in:
Daniel Larimer 2013-07-06 22:07:12 -04:00
parent b8e08c97b2
commit fbcdd4fa5e
5 changed files with 14 additions and 6 deletions

View file

@ -31,11 +31,11 @@ namespace fc {
template<typename T, size_t N>
bool operator == ( const array<T,N>& a, const array<T,N>& b )
{ return 0 == memcmp( a.data, b.data, N ); }
{ return 0 == memcmp( a.data, b.data, N*sizeof(T) ); }
template<typename T, size_t N>
bool operator != ( const array<T,N>& a, const array<T,N>& b )
{ return 0 != memcmp( a.data, b.data, N ); }
{ return 0 != memcmp( a.data, b.data, N*sizeof(T) ); }
template<typename T, size_t N>
void to_variant( const array<T,N>& bi, variant& v )

View file

@ -13,8 +13,8 @@ namespace fc
class mmap_struct_base
{
public:
size_t size()const { return _mapped_region->get_size(); }
void flush() { _mapped_region->flush(); }
size_t size()const;
void flush();
protected:
void open( const fc::path& file, size_t s, bool create );

View file

@ -261,7 +261,7 @@ namespace fc
{
std::vector<variant> vars(var.size());
size_t i = 0;
for( auto itr = var.begin(); itr != var.end(); ++itr )
for( auto itr = var.begin(); itr != var.end(); ++itr, ++i )
vars[i] = variant(*itr);
vo = vars;
}
@ -279,7 +279,7 @@ namespace fc
{
std::vector<variant> vars(var.size());
size_t i = 0;
for( auto itr = var.begin(); itr != var.end(); ++itr )
for( auto itr = var.begin(); itr != var.end(); ++itr, ++i )
vars[i] = variant(*itr);
vo = vars;
}

View file

@ -4,6 +4,8 @@
#include <fc/fwd_impl.hpp>
namespace fc {
file_mapping::file_mapping( const char* file, mode_t m )
:my(file, m == read_only ? boost::interprocess::read_only : boost::interprocess::read_write ){}
file_mapping::~file_mapping(){}

View file

@ -7,6 +7,12 @@ namespace fc
{
namespace detail
{
size_t mmap_struct_base::size()const { return _mapped_region->get_size(); }
void mmap_struct_base::flush()
{
_mapped_region->flush();
}
void mmap_struct_base::open( const fc::path& file, size_t s, bool create )
{
if( !fc::exists( file ) || fc::file_size(file) != s )