Re: Crash when getting module type

"Troy A. Griffitts" <[email protected]>
Newsgroups gmane.comp.literature.sword.devel
Message-ID <[email protected]>
Important typo:

- We could set option values from the source to the destination, I suppose, but still that would give you what you want.
+ We could set option values from the source to the destination, I suppose, but still that WOULDN'T give you what you want.

On October 29, 2023 11:21:12 MST, "Troy A. Griffitts" <[email protected]> wrote:
>Hi David,
>
>On October 29, 2023 10:52:50 MST, "David "Judah's Shadow" Blue" <[email protected]> wrote:
>
> 
>>The next class at play is the library class that also has a private member
>>swordLibrary,
>>
>>sword::SWMgr swordLibrary;
>
>This is the issue. Since you are declaring an instance of SWMgr here, it will get constructed in your library class c-tor with its own set of module and filter, etc. objects. Then in setSwordLibrary you assign that fully constructed local instance to a reference to the instance you newed outside.
>
>SWMgr is a factory object and assigning one factory to another doesn't equate to a clear action. We could set option values from the source to the destination, I suppose, but still that would give you what you want. I would suggest changing this swordLibrary property of your library class to a pointer. Then things should work as you expect.
>
>Hope this helps.
>
>Troy
>
>>
>>and a setSwordLibrary(), method,
>>
>>void Library::setSwordLibrary(sword::SWMgr &library) {
>>    this->swordLibrary = library;
>>}
>>
>>it also has the method in question getModuleList,
>>
>>
>>std::list< std::string > Library::getModuleList(std::string moduleType) {
>>    std::string module = "";
>>    sword::ModMap::iterator libraryIterator;
>>    std::list<std::string> moduleList;
>>    std::string selectedType;
>>    std::string modType;
>>
>>    std::string bible = sword::SWMgr::MODTYPE_BIBLES;
>>    std::string comentary = sword::SWMgr::MODTYPE_COMMENTARIES;
>>    std::string devo = sword::SWMgr::MODTYPE_DAILYDEVOS;
>>    std::string book = sword::SWMgr::MODTYPE_GENBOOKS;
>>    std::string dict = sword::SWMgr::MODTYPE_LEXDICTS;
>>
>>    if(moduleType == "bible") {
>>        selectedType = bible;
>>    }
>>    else if(moduleType == "commentary") {
>>        selectedType = comentary;
>>    }
>>    else if(moduleType == "devotion") {
>>            selectedType = devo;
>>    }
>>    else if(moduleType == "book") {
>>            selectedType = book;
>>    }
>>    else if(moduleType == "dictionary") {
>>            selectedType = dict;
>>    }
>>    else {
>>            //We should never get here but you never know.
>>            module = "Invalid type";
>>            moduleList.push_back(module);
>>            return moduleList;
>>    }
>>
>>    for(libraryIterator = this->swordLibrary.Modules.begin();
>>        libraryIterator != this->swordLibrary.Modules.end();
>>        libraryIterator++) {
>>
>>        sword::SWModule *tempMod = libraryIterator->second;
>>
>>        modType = tempMod->getType();
>>
>>        if(modType == selectedType) {
>>            module = "For ";
>>            module += tempMod->getDescription();
>>            module += " select ";
>>            module += tempMod->getName();
>>            moduleList.push_front(module);
>>            module = "";
>>        }
>>    }
>>
>>    return moduleList;
>>
>>}
>
>-- 
>Sent from my Android device with K-9 Mail. Please excuse my brevity.
>_______________________________________________
>sword-devel mailing list: [email protected]
>http://crosswire.org/mailman/listinfo/sword-devel
>Instructions to unsubscribe/change your settings at above page

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

_______________________________________________
sword-devel mailing list: [email protected]
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.