<html><head></head><body><div dir="auto">Hi David. There shouldn't be any nulls in the SWMgr::Modules map. Have you done anything with the map which might have created an entry?  For example, have you attempted to obtain a module by name which wasn't there? In C++ this would create an empty entry with a null pointer if the KJV wasn't installed.<br><br>SWModule *kjv = swordLibrary->Modules["KJV"];<br><br>Just trying to guess what might have happened.<br></div><br><br><div class="gmail_quote"><div dir="auto">On October 26, 2023 10:59:34 MST, "David "Judah's Shadow" Blue" <yudahsshadow@gmx.com> wrote:</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail"><div dir="auto">On Wednesday, October 25, 2023 6:22:54 PM EDT Donna Whisnant wrote:<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><div dir="auto"> David,<br><br> Based on the code you are showing, I can pretty much guarantee you that your<br> segfault is caused by tempMod being a null pointer -- i.e. that the value<br> of the map element you are iterating is null.<br></div></blockquote><div dir="auto"><br>Ok, I didn't know that there could be null elements in the map.<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><div dir="auto">Your code needs to be more defensive and check if tempMod is a nullptr<br>before dereferencing it.  Adding an 'if' around that code block should fix<br>your segfault problem.<br></div></blockquote><div dir="auto"><br><br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><div dir="auto">But you'll have to determine why some module<br>entries in your map are nulls -- perhaps you missed loading modules or<br>something? Your code snippet doesn't show any of those details...  it only<br>shows iterating something that appears to be a std::map.<br></div></blockquote><div dir="auto"><br>Do you have to do something to load modules? When my program initializes, I do<br>this<br><br>swordLibrary = new sword::SWMgr(new sword::MarkupFilterMgr(sword::FMT_PLAIN));<br>and then pass a pointer to that around my various classes.<br><br>In this particular function,  the iterator is this,<br><br>sword::ModMap::iterator libraryIterator;<br><br>I had thought I was following one of the examples.<br></div></pre></blockquote></div><div dir="auto"><div class='k9mail-signature'>-- <br>Sent from my Android device with K-9 Mail. Please excuse my brevity.</div></div></body></html>