std::memcpy(object, literal.GetString().c_str(), literal.GetString().size());
object[literal.GetString().size()] = '\0';
break;
+ case Literal::SCRIPT:
+ throw Error("script compiler not implemented");
case Literal::STRING:
std::memcpy(object, literal.GetString().c_str(), literal.GetString().size());
object[literal.GetString().size()] = '\0';
break;
case Literal::OBJECT:
throw Error("illogical branch: read literal object as non-object literal");
- break;
}
}
values[typeId].push_back(str);
}
break;
+ case Literal::SCRIPT:
+ throw Error("script compiler not implemented");
case Literal::STRING:
{
typeId = TypeDescription::GetTypeId("String");
} else {
throw Error("aggregate type fields must be referenced");
}
+ } else if (i->second->IsLiteral() && !fd.IsReferenced()) {
+ // inline literals
+ if (i->second->GetLiteral().IsObject()) {
+ ReadObject(fd.TypeId(), -1, dest, *i->second->GetLiteral().GetProperties());
+ } else {
+ ReadLiteral(fd.TypeId(), -1, dest, i->second->GetLiteral());
+ }
} else {
char *src(reinterpret_cast<char *>(GetObject(fd.TypeId(), *i->second)));
if (fd.TypeId() == TypeDescription::GetTypeId("Image")) {