5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【GUI】wxWidgets(旧wxWindows) その3【サイザー】

90 :デフォルトの名無しさん:2006/12/31(日) 16:43:52
バグらしき物を発見したんですがどこかに報告した方がいいんでしょうか?
バージョンはwxMSW-2.8.0です。

// src/common/dynarray.cpp 379行目から
void name::insert(iterator it, const_iterator first, const_iterator last) \
{                                          \
 size_t nInsert = last - first, nIndex = it - begin();            \
 if (nInsert == 0)                                \
  return;                                    \
 Grow(nInsert);                                 \
                                          \
 memmove(&m_pItems[nIndex + nInsert], &m_pItems[nIndex],     \
     (m_nCount - nIndex)*sizeof(T));                  \
 for (size_t i = 0; i < nInsert; ++i, ++it, ++first)              \
  *it = *first;                                 \
 m_nCount += nInsert;                            \
}

Growによって配列が再確保されるとitがdeleteされた領域を指してしまいます。
Growの後に it = begin() + nIndex; を挿入すれば大丈夫っぽいです。

268 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)