Aggregations to put under unit test: LLSalesInfo: TBD. Check out importFile, importLegacyStream see if either is still used. Check fromLLSD In LLAggregatePermissions: getValue getU8 isEmpty aggregate (2 versions) pack/unpack. Things that could possibly be refactored after being brought under unit test: LLTransferableTasksFunctor LLTask::getInventoryAggregatePerm() LLTask::getInventoryTextureAggregatePerm() ExportItemPtrs operator in LLTask AccumulateItemPermissions in LLTask can be refactored into AggregatePerms. LLTask::fixNextOwnerFairUse LLTask::allowOperationOnTask (maybe) BOOL LLTask::allowTransfer() const LLTask::getRestrictiveInventoryMask() LLTask::setTaskPermissions (maybe) LLTask::setSaleInfo (maybe) (possibly into salesInfo) LLTask::setSaleInfoByScript " LLTask::savePrelinkPermissions LLTask::restorePreLinkPermissions allow copy/transfer logic: if((item->getPermissions().allowCopyBy(mRequesterID)) && (item->getPermissions().allowTransferTo(mRequesterID))) LLTask::EUpdateInventoryResult LLTask::updateInventoryItem aggregation logic similar to link and other aggregations. void post_inventory_copy in LLTask LLUUID LLTask::derezObjects LLTask::absorb (does some aggregation for linking) UnitTest in LLTask (not refactored): LLTask::setRootPermissions LLTask::setRootOwnerAndGroup LLTask::setRootOwnerToGroup LLTask::moveTaskInventory LLTask::EUpdateInventoryResult LLTask::updateInventoryItem aggregation logic similar to link and other aggregations. LLTask::setTaskOwnerToGroup LLTask::processTaskInventory LLTask::rezScriptByAgent void LLTask::derezBackToOwner LLUUID LLTask::derezObjects void LLTask::linkFromList LLTask::delinkToList init_agent (maybe) LLTask::duplicate (Findout where this is being called, verify perms checks are done beforehand) --------------- Checked LLSimInventoryItems nothing too exciting there.