Derived Id<n, Derived>::FromFile(ptr<File> file) { if(file->GetSize() != size) THROW(String("Wrong size of id file for ") + typeid(Derived).name()); return FromData(file->GetData()); }
SecureString CMnemonic::Generate(int strength) { if (strength % 32 || strength < 128 || strength > 256) { return SecureString(); } SecureVector data(32); GetRandBytes(&data[0], 32); SecureString mnemonic = FromData(data, strength / 8); return mnemonic; }
nsStringBuffer* nsStringBuffer::FromString(const nsACString& str) { const nsACStringAccessor* accessor = static_cast<const nsACStringAccessor*>(&str); if (!(accessor->flags() & nsCSubstring::F_SHARED)) return nullptr; return FromData(accessor->data()); }
FromData fromDataForArray(AstNode* nodep, AstNode* basefromp, bool rangedSelect) { // What is the data type and information for this SEL-ish's from()? UINFO(9," fromData start ddtypep = "<<basefromp<<endl); VNumRange fromRange; // constructs to isRanged(false) while (basefromp) { if (basefromp->castAttrOf()) { basefromp = basefromp->castAttrOf()->fromp(); continue; } break; } if (!basefromp || !basefromp->dtypep()) nodep->v3fatalSrc("Select with no from dtype"); AstNodeDType* ddtypep = basefromp->dtypep()->skipRefp(); AstNode* errp = ddtypep; UINFO(9," fromData.ddtypep = "<<ddtypep<<endl); if (AstNodeArrayDType* adtypep = ddtypep->castNodeArrayDType()) { fromRange = adtypep->declRange(); } else if (AstNodeClassDType* adtypep = ddtypep->castNodeClassDType()) { fromRange = adtypep->declRange(); } else if (AstBasicDType* adtypep = ddtypep->castBasicDType()) { if (adtypep->isRanged()) { if (adtypep->rangep() && (!adtypep->rangep()->msbp()->castConst() || !adtypep->rangep()->lsbp()->castConst())) nodep->v3fatalSrc("Non-constant variable range; errored earlier"); // in constifyParam(bfdtypep) fromRange = adtypep->declRange(); } else { nodep->v3error("Illegal bit or array select; type does not have a bit range, or bad dimension: type is " <<errp->prettyName()); } } else { nodep->v3error("Illegal bit or array select; type already selected, or bad dimension: type is " <<errp->prettyName()); } return FromData(errp,ddtypep,fromRange); }
Derived Id<n, Derived>::FromStringData(const String& string) { if(string.length() != n) THROW(String("Wrong string data length for ") + typeid(Derived).name()); return FromData(string.c_str()); }