LLSavedLogins::LLSavedLogins(const LLSD& history_data) { if (!history_data.isArray()) throw std::invalid_argument("Invalid history data."); for (LLSD::array_const_iterator i = history_data.beginArray(); i != history_data.endArray(); ++i) { // Put the last used grids first. if (!i->isUndefined()) mEntries.push_front(LLSavedLoginEntry(*i)); } }