const char *name(CYPoolCString(pool, property, &length));
double number(CYCastDouble(name, length));
- if (std::isnan(number))
- // XXX: implement!
- return false;
+ if (std::isnan(number)) {
+ if (property == NULL)
+ return false;
- index = static_cast<ssize_t>(number);
- if (index != number || index < 0 || static_cast<size_t>(index) >= typical->type_.data.signature.count)
+ // XXX: implement!
return false;
+ } else {
+ index = static_cast<ssize_t>(number);
+ if (index != number || index < 0 || static_cast<size_t>(index) >= typical->type_.data.signature.count)
+ return false;
+ }
base = reinterpret_cast<uint8_t *>(internal->value_);
for (ssize_t local(0); local != index; ++local)
property labels should get minimized
functors use both ffiData and ffoData...
rename "data" variables to "internal"
+unicode identifier support (native and \u)