1 #include "argumentstore.h"
6 ArgumentStore::ArgumentStore(const StatementInfo &n):
8 store(new char[info.args_size])
10 for(unsigned i=0; i<info.key.signature.size(); ++i)
11 switch(info.key.signature[i])
13 case StringType::signature:
14 new(store+info.arg_offsets[i]) StringType::Store;
16 case SymbolType::signature:
17 new(store+info.arg_offsets[i]) SymbolType::Store;
22 ArgumentStore::~ArgumentStore()
24 for(unsigned i=0; i<info.key.signature.size(); ++i)
25 switch(info.key.signature[i])
27 case StringType::signature:
28 reinterpret_cast<StringType::Store *>(store+info.arg_offsets[i])->~basic_string();
30 case SymbolType::signature:
31 reinterpret_cast<SymbolType::Store *>(store+info.arg_offsets[i])->~Symbol();
36 } // namespace DataFile