Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Crash in CExtTreeGridDataProvider::_Tree_MapRowToCache in 2.84 Collapse All
Subject Author Date
Offer Har Jan 1, 2009 - 10:12 AM

I have a tree grid that crashes each time A node is going to be displayed.


I see that in CExtTreeGridDataProvider::_Tree_MapRowToCache, this line:



CExtTreeGridCellNode * pNode = m_arrGridVis.GetAt( nRowNo );


returns NULL, even though the row line is valid. The entry is within the array, because the array size is bigger then the nRowNo, so, for some reason the array contains NULL entries - how can this be?


Please note that the same think does not happen in 2.82.


Please fix.


Thanks,


Ron.


This is the stack:


     ntdll.dll!7c90120e()    

     [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]   

     msvcr80d.dll!_CrtDbgBreak()  Line 89    C

     msvcr80d.dll!_VCrtDbgReportA(int nRptType=2, const char * szFile=0x01bdce48, int nLine=2268, const char * szModule=0x00000000, const char * szFormat=0x00000000, char * arglist=0x0012659c)  Line 290    C

     msvcr80d.dll!_CrtDbgReportV(int nRptType=2, const char * szFile=0x01bdce48, int nLine=2268, const char * szModule=0x00000000, const char * szFormat=0x00000000, char * arglist=0x0012659c)  Line 300 + 0x1d bytes    C

     msvcr80d.dll!_CrtDbgReport(int nRptType=2, const char * szFile=0x01bdce48, int nLine=2268, const char * szModule=0x00000000, const char * szFormat=0x00000000, ...)  Line 317 + 0x1d bytes    C

     mfc80d.dll!AfxAssertFailedLine(const char * lpszFileName=0x01bdce48, int nLine=2268)  Line 25 + 0x14 bytes    C++

     mfc80d.dll!AfxAssertValidObject(const CObject * pOb=0x00000000, const char * lpszFileName=0x01bdce48, int nLine=2268)  Line 77 + 0xd bytes    C++

>    ProfUIS284md.dll!CExtTreeGridDataProvider::_Tree_MapRowToCache(unsigned long nRowNo=13)  Line 2269    C++

     ProfUIS284md.dll!CExtTreeGridDataProvider::_Tree_NodeGetByVisibleRowIndex(unsigned long nRowNo=14)  Line 932 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtTreeGridDataProvider::TreeNodeGetByVisibleRowIndex(unsigned long nRowNo=14)  Line 917 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtTreeGridWnd::ItemGetByVisibleRowIndex(long nRowNo=14)  Line 3105 + 0xc bytes    C++

     ProfUIS284md.dll!CExtTreeGridWnd::OnSiwQueryItemExtentV(long nRowNo=13, int * p_nExtraSpaceBefore=0x00000000, int * p_nExtraSpaceAfter=0x00000000)  Line 5117 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtGridBaseWnd::OnSiwCalcPageMetrics(int nDirection=0)  Line 7152 + 0x1d bytes    C++

     ProfUIS284md.dll!CExtScrollItemWnd::OnSiwGetVisibleRange()  Line 6546 + 0x18 bytes    C++

     ProfUIS284md.dll!CExtGridBaseWnd::OnGbwWalkVisibleAreas(CDC & dc={...}, bool bFocusedControl=false, CExtGridHitTestInfo * pHT=0x00000000)  Line 2582 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtGridBaseWnd::OnSiwPaintForeground(CDC & dc={...}, bool bFocusedControl=false)  Line 2169 + 0x1c bytes    C++

     ProfUIS284md.dll!CExtScrollItemWnd::OnSwPaint(CDC & dc={...})  Line 6080 + 0x1a bytes    C++

     ProfUIS284md.dll!CExtScrollWnd::OnPaint()  Line 4240 + 0x19 bytes    C++

     mfc80d.dll!CWnd::OnWndMsg(unsigned int message=15, unsigned int wParam=0, long lParam=0, long * pResult=0x00128188)  Line 2028    C++

     mfc80d.dll!CWnd::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0)  Line 1741 + 0x20 bytes    C++

     ProfUIS284md.dll!CExtScrollWnd::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0)  Line 4312    C++

     ProfUIS284md.dll!CExtGridBaseWnd::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0)  Line 12775    C++

     BaseUI.dll!CExtCTA<CBaseTreeGrid>::WindowProc(unsigned int message=15, unsigned int wParam=0, long lParam=0)  Line 2303 + 0x17 bytes    C++

     mfc80d.dll!AfxCallWndProc(CWnd * pWnd=0x07a07360, HWND__ * hWnd=0x000a2678, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0)  Line 240 + 0x1c bytes    C++

     mfc80d.dll!AfxWndProc(HWND__ * hWnd=0x000a2678, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0)  Line 389    C++

     mfc80d.dll!AfxWndProcBase(HWND__ * hWnd=0x000a2678, unsigned int nMsg=15, unsigned int wParam=0, long lParam=0)  Line 411 + 0x15 bytes    C++

     user32.dll!7e418734()    

     user32.dll!7e418816()    

     user32.dll!7e428ea0()    

     user32.dll!7e428eec()    

     ntdll.dll!7c90e453()    

     user32.dll!7e4194d2()    

     user32.dll!7e428f10()    

     user32.dll!7e4274b2()    

     user32.dll!7e418a10()    

     user32.dll!7e427721()    

     user32.dll!7e4249c4()    

     user32.dll!7e43a956()    

     msvcr80d.dll!_output_s_l(_iobuf * stream=0x0008282a, const char * format=0x001a34e8, localeinfo_struct * plocinfo=0x001a17a8, char * argptr=0x00012012)  Line 1166 + 0x17 bytes    C++

     user32.dll!7e4664a2()    

     user32.dll!7e450877()    

     user32.dll!7e45082f()    

     msvcr80d.dll!__crtMessageBoxA(const char * lpText=0x00128c70, const char * lpCaption=0x102d315c, unsigned int uType=73746)  Line 168 + 0x13 bytes    C

     msvcr80d.dll!__crtMessageWindowA(int nRptType=2, const char * szFile=0x01bdce48, const char * szLine=0x0012ace4, const char * szModule=0x00000000, const char * szUserMessage=0x00129ce4)  Line 420 + 0x16 bytes    C

     msvcr80d.dll!_VCrtDbgReportA(int nRptType=2, const char * szFile=0x01bdce48, int nLine=2268, const char * szModule=0x00000000, const char * szFormat=0x00000000, char * arglist=0x0012ed78)  Line 420 + 0x28 bytes    C

     msvcr80d.dll!_CrtDbgReportV(int nRptType=2, const char * szFile=0x01bdce48, int nLine=2268, const char * szModule=0x00000000, const char * szFormat=0x00000000, char * arglist=0x0012ed78)  Line 300 + 0x1d bytes    C

     msvcr80d.dll!_CrtDbgReport(int nRptType=2, const char * szFile=0x01bdce48, int nLine=2268, const char * szModule=0x00000000, const char * szFormat=0x00000000, ...)  Line 317 + 0x1d bytes    C

     mfc80d.dll!AfxAssertFailedLine(const char * lpszFileName=0x01bdce48, int nLine=2268)  Line 25 + 0x14 bytes    C++

     mfc80d.dll!AfxAssertValidObject(const CObject * pOb=0x00000000, const char * lpszFileName=0x01bdce48, int nLine=2268)  Line 77 + 0xd bytes    C++

     ProfUIS284md.dll!CExtTreeGridDataProvider::_Tree_MapRowToCache(unsigned long nRowNo=13)  Line 2269    C++

     ProfUIS284md.dll!CExtTreeGridDataProvider::_Tree_NodeGetByVisibleRowIndex(unsigned long nRowNo=14)  Line 932 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtTreeGridDataProvider::TreeNodeGetByVisibleRowIndex(unsigned long nRowNo=14)  Line 917 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtTreeGridWnd::ItemGetByVisibleRowIndex(long nRowNo=14)  Line 3105 + 0xc bytes    C++

     ProfUIS284md.dll!CExtTreeGridWnd::OnSiwQueryItemExtentV(long nRowNo=13, int * p_nExtraSpaceBefore=0x00000000, int * p_nExtraSpaceAfter=0x00000000)  Line 5117 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtGridBaseWnd::OnSiwCalcPageMetrics(int nDirection=0)  Line 7152 + 0x1d bytes    C++

     ProfUIS284md.dll!CExtScrollItemWnd::OnSwGetPageSize(int nDirection=0)  Line 5554 + 0x1a bytes    C++

     ProfUIS284md.dll!CExtGridBaseWnd::OnSwDoScrollBy(CSize sizeScroll={...}, bool bDoScroll=true)  Line 7208 + 0x18 bytes    C++

     ProfUIS284md.dll!CExtScrollItemWnd::OnSwDoScroll(unsigned int nScrollCode=511, unsigned int nPos=0, bool bDoScroll=true)  Line 6381 + 0x33 bytes    C++

     ProfUIS284md.dll!CExtScrollWnd::OnVScroll(unsigned int nSBCode=1, unsigned int nPos=0, CScrollBar * pScrollBar=0x07a0865c)  Line 4184 + 0x30 bytes    C++

     mfc80d.dll!CWnd::OnWndMsg(unsigned int message=277, unsigned int wParam=1, long lParam=665142, long * pResult=0x0012f284)  Line 2118    C++

     mfc80d.dll!CWnd::WindowProc(unsigned int message=277, unsigned int wParam=1, long lParam=665142)  Line 1741 + 0x20 bytes    C++

     ProfUIS284md.dll!CExtScrollWnd::WindowProc(unsigned int message=277, unsigned int wParam=1, long lParam=665142)  Line 4312    C++

     ProfUIS284md.dll!CExtGridBaseWnd::WindowProc(unsigned int message=277, unsigned int wParam=1, long lParam=665142)  Line 12775    C++

     BaseUI.dll!CExtCTA<CBaseTreeGrid>::WindowProc(unsigned int message=277, unsigned int wParam=1, long lParam=665142)  Line 2303 + 0x17 bytes    C++

     mfc80d.dll!AfxCallWndProc(CWnd * pWnd=0x07a07360, HWND__ * hWnd=0x000a2678, unsigned int nMsg=277, unsigned int wParam=1, long lParam=665142)  Line 240 + 0x1c bytes    C++

     mfc80d.dll!AfxWndProc(HWND__ * hWnd=0x000a2678, unsigned int nMsg=277, unsigned int wParam=1, long lParam=665142)  Line 389    C++

     mfc80d.dll!AfxWndProcBase(HWND__ * hWnd=0x000a2678, unsigned int nMsg=277, unsigned int wParam=1, long lParam=665142)  Line 411 + 0x15 bytes    C++

     user32.dll!7e418734()    

     user32.dll!7e418816()    

     user32.dll!7e428ea0()    

     user32.dll!7e428eec()    

     ntdll.dll!7c90e453()    

     user32.dll!7e4194be()    

     user32.dll!7e42c174()    

     user32.dll!7e42f40b()    

     ProfUIS284md.dll!CExtScrollBar::ScrollBar_TrackMouseLButtonDown(tagMSG * pMSG=0x0012f9c4)  Line 2073 + 0x4b bytes    C++

     ProfUIS284md.dll!CExtScrollBar::ScrollBar_OnMouseClickMsg(tagMSG * pMSG=0x0012f9c4)  Line 1614 + 0x16 bytes    C++

     ProfUIS284md.dll!CExtScrollBar::OnLButtonDown(unsigned int nFlags=1, CPoint point={...})  Line 1670    C++

     mfc80d.dll!CWnd::OnWndMsg(unsigned int message=513, unsigned int wParam=1, long lParam=11993101, long * pResult=0x0012fb40)  Line 2169    C++

     mfc80d.dll!CWnd::WindowProc(unsigned int message=513, unsigned int wParam=1, long lParam=11993101)  Line 1741 + 0x20 bytes    C++

     ProfUIS284md.dll!CExtScrollBar::WindowProc(unsigned int message=513, unsigned int wParam=1, long lParam=11993101)  Line 441 + 0x14 bytes    C++

     mfc80d.dll!AfxCallWndProc(CWnd * pWnd=0x07a0865c, HWND__ * hWnd=0x000a2636, unsigned int nMsg=513, unsigned int wParam=1, long lParam=11993101)  Line 240 + 0x1c bytes    C++

     mfc80d.dll!AfxWndProc(HWND__ * hWnd=0x000a2636, unsigned int nMsg=513, unsigned int wParam=1, long lParam=11993101)  Line 389    C++

     mfc80d.dll!AfxWndProcBase(HWND__ * hWnd=0x000a2636, unsigned int nMsg=513, unsigned int wParam=1, long lParam=11993101)  Line 411 + 0x15 bytes    C++

     user32.dll!7e418734()    

     user32.dll!7e418816()    

     user32.dll!7e4189cd()    

     user32.dll!7e418a10()    

     user32.dll!7e4274ff()    

     user32.dll!7e43c6d3()    

     mfc80d.dll!CWnd::IsDialogMessageA(tagMSG * lpMsg=0x00159f00)  Line 198    C++

     mfc80d.dll!CWnd::PreTranslateInput(tagMSG * lpMsg=0x00159f00)  Line 4268    C++

     mfc80d.dll!CControlBar::PreTranslateMessage(tagMSG * pMsg=0x00159f00)  Line 443 + 0xc bytes    C++

     mfc80d.dll!CWnd::WalkPreTranslateTree(HWND__ * hWndStop=0x000b254a, tagMSG * pMsg=0x00159f00)  Line 2882 + 0x14 bytes    C++

     mfc80d.dll!AfxInternalPreTranslateMessage(tagMSG * pMsg=0x00159f00)  Line 233 + 0x12 bytes    C++

     mfc80d.dll!CWinThread::PreTranslateMessage(tagMSG * pMsg=0x00159f00)  Line 773 + 0x9 bytes    C++

     mfc80d.dll!AfxPreTranslateMessage(tagMSG * pMsg=0x00159f00)  Line 252 + 0x11 bytes    C++

     mfc80d.dll!AfxInternalPumpMessage()  Line 178 + 0x18 bytes    C++

     mfc80d.dll!CWinThread::PumpMessage()  Line 896    C++

     mfc80d.dll!CWinThread::Run()  Line 625 + 0xd bytes    C++

     mfc80d.dll!CWinApp::Run()  Line 894    C++

     mfc80d.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f12, int nCmdShow=1)  Line 47 + 0xd bytes    C++

Technical Support Jan 2, 2009 - 3:03 PM

We need your help in reproducing this crash.

Offer Har Jan 2, 2009 - 3:08 PM

My problem is that it does not happen in all trees, and nodes.


Any clue to how come


m_arrGridVis.GetAt( nRowNo )

Can return NULL would help me create a reproducible application...


Thanks,


Ron.