Commit a9ddd957 authored by twanvl's avatar twanvl

Removed some potentially unsafe smart pointer constructions

parent ebcfedd2
...@@ -103,7 +103,8 @@ void AutoReplaceList::removeSelected() { ...@@ -103,7 +103,8 @@ void AutoReplaceList::removeSelected() {
items.erase(items.begin() + i); items.erase(items.begin() + i);
// select next // select next
refreshList(); refreshList();
selectItem(items.empty() ? VoidP() : VoidP(items[min(i, items.size())]), true, true); selectItem(items.empty() ? VoidP() : static_pointer_cast<IntrusivePtrVirtualBase>(items[min(i, items.size())]),
true, true);
return; return;
} }
} }
......
...@@ -91,20 +91,20 @@ enum WordListItemFlags ...@@ -91,20 +91,20 @@ enum WordListItemFlags
, FLAG_LINE_BELOW = 0x04 , FLAG_LINE_BELOW = 0x04
}; };
struct DropDownWordListItem { struct DropDownWordListItem {
DropDownWordListItem() : word(nullptr), flags(0) {} DropDownWordListItem() : flags(0) {}
DropDownWordListItem(WordListWord* word, int flags = 0) DropDownWordListItem(WordListWordP word, int flags = 0)
: word(word) : word(word)
, name(word->name) , name(word->name)
, flags(flags | (word->isGroup() * FLAG_SUBMENU) , flags(flags | (word->isGroup() * FLAG_SUBMENU)
| (word->line_below * FLAG_LINE_BELOW)) | (word->line_below * FLAG_LINE_BELOW))
{} {}
DropDownWordListItem(WordListWord* word, const String& name, int flags = 0) DropDownWordListItem(WordListWordP word, const String& name, int flags = 0)
: word(word) : word(word)
, name(name) , name(name)
, flags(flags) , flags(flags)
{} {}
WordListWord* word; WordListWordP word;
String name; String name;
int flags; int flags;
DropDownListP submenu; DropDownListP submenu;
...@@ -177,7 +177,7 @@ void DropDownWordList::setWords(const WordListWordP& words2) { ...@@ -177,7 +177,7 @@ void DropDownWordList::setWords(const WordListWordP& words2) {
} }
} }
if (!already_added || w->isGroup()) { if (!already_added || w->isGroup()) {
items.push_back(DropDownWordListItem(w.get())); items.push_back(DropDownWordListItem(w));
} }
} }
} }
...@@ -214,7 +214,7 @@ void DropDownWordList::addWordsFromScript(const WordListWordP& w) { ...@@ -214,7 +214,7 @@ void DropDownWordList::addWordsFromScript(const WordListWordP& w) {
} }
// not a duplicate // not a duplicate
prev = items.size(); prev = items.size();
items.push_back(DropDownWordListItem(w.get(), s, w->line_below * FLAG_LINE_BELOW)); items.push_back(DropDownWordListItem(w, s, w->line_below * FLAG_LINE_BELOW));
} }
} }
} }
...@@ -241,7 +241,7 @@ DropDownList* DropDownWordList::submenu(size_t item) const { ...@@ -241,7 +241,7 @@ DropDownList* DropDownWordList::submenu(size_t item) const {
if (i.flags & FLAG_SUBMENU) { if (i.flags & FLAG_SUBMENU) {
// create submenu? // create submenu?
if (!i.submenu) { if (!i.submenu) {
i.submenu.reset(new DropDownWordList(const_cast<DropDownWordList*>(this), true, tve, pos, WordListWordP(i.word))); i.submenu.reset(new DropDownWordList(const_cast<DropDownWordList*>(this), true, tve, pos, i.word));
} }
return i.submenu.get(); return i.submenu.get();
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment