From: <td...@us...> - 2003-11-19 08:42:00
|
Update of /cvsroot/anyedit/AnyEditv2 In directory sc8-pr-cvs1:/tmp/cvs-serv18739 Modified Files: ClassView.cpp ClassView.h TagList.cpp TagList.h TagParser.cpp ToDo.txt Log Message: - Fixed tag parsing memory leaks - Added support for java/python tags Index: ClassView.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/ClassView.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** ClassView.cpp 18 Nov 2003 11:27:22 -0000 1.20 --- ClassView.cpp 19 Nov 2003 08:41:56 -0000 1.21 *************** *** 43,46 **** --- 43,66 ---- return retitem; + #define CASEFORFUNCTION switch(acc->access) {\ + case ACCESS_PUBLIC:\ + return IMG_PUB_FUNC;\ + case ACCESS_PRIVATE:\ + return IMG_PRI_FUNC;\ + case ACCESS_PROTECTED:\ + return IMG_PRO_FUNC;\ + default:\ + return IMG_FUNC;} + + #define CASEFORVARIABLE switch(acc->access){\ + case ACCESS_PUBLIC:\ + return IMG_PUB_VAR;\ + case ACCESS_PRIVATE:\ + return IMG_PRI_VAR;\ + case ACCESS_PROTECTED:\ + return IMG_PRO_VAR;\ + default:\ + return IMG_VAR;} + ///////////////////////////////////////////////////////////////////////////// // CClassView *************** *** 253,257 **** } ! HTREEITEM hItem = InsertItem(ent->tagname,0,0,paritem,afterItem); //SetItemData(hItem,ent->lineno); SetItemData(hItem,(DWORD)new CTagEntry(ent)); --- 273,277 ---- } ! HTREEITEM hItem = InsertItem(ent->tagname,IMG_CLASS,IMG_CLASS,paritem,afterItem); //SetItemData(hItem,ent->lineno); SetItemData(hItem,(DWORD)new CTagEntry(ent)); *************** *** 424,430 **** int imgNo=0; GetItemImage(hItem,imgNo,imgNo); ! if((imgNo==6)||(imgNo==7)||(imgNo==12)) return; ! if(imgNo==0) { CheckClass(hItem,taglist); --- 444,450 ---- int imgNo=0; GetItemImage(hItem,imgNo,imgNo); ! if(imgNo==IMG_CATEGORY) return; ! if(imgNo==IMG_CLASS) { CheckClass(hItem,taglist); *************** *** 576,668 **** case 'f': // If it is a function { ! switch(acc->access) ! { ! case 1: ! return 1; ! break; ! case 2: ! return 4; ! break; ! case 3: ! return 3; ! break; ! default: ! return 8; ! } ! } break; ! case 'v': { ! switch(acc->access) ! { ! case 1: ! return 2; ! break; ! case 2: ! return 11; ! break; ! case 3: ! return 10; ! break; ! default: ! return 9; ! } } break; case 'm': ! return 13; break; } ! return 8; } int CClassView::GetImageFTJAVA(CTagEntry * acc) { ! switch(acc->type) { case 'm': // If it is a function { ! switch(acc->access) ! { ! case 1: ! return 1; ! break; ! case 2: ! return 4; ! break; ! case 3: ! return 3; ! break; ! default: ! return 8; ! } ! } break; ! case 'f': { ! switch(acc->access) ! { ! case 1: ! return 2; ! break; ! case 2: ! return 11; ! break; ! case 3: ! return 10; ! break; ! default: ! return 9; ! } } break; } ! return 8; } --- 596,634 ---- case 'f': // If it is a function { ! CASEFORFUNCTION; } break; ! case 'v': //Variable { ! CASEFORVARIABLE; } break; case 'm': ! return IMG_GENERAL; break; } ! return IMG_GENERAL; } int CClassView::GetImageFTJAVA(CTagEntry * acc) { ! switch(acc->type) { case 'm': // If it is a function { ! CASEFORFUNCTION; } break; ! case 'f': // Field == variable { ! CASEFORVARIABLE; } break; } ! return IMG_GENERAL; } *************** *** 674,678 **** int CClassView::GetImageFTPYTHON(CTagEntry * acc) { ! return 8; } --- 640,658 ---- int CClassView::GetImageFTPYTHON(CTagEntry * acc) { ! switch(acc->type) ! { ! case 'f': // If it is a function ! { ! CASEFORFUNCTION; ! } ! break; ! ! case 'm': // Field == variable ! { ! CASEFORVARIABLE; ! } ! break; ! } ! return IMG_GENERAL; } *************** *** 688,703 **** case FT_C: //In case of C,CPP files return GetImageFTC(acc); - break; case FT_JAVA: return GetImageFTJAVA(acc); break; } ! return 8; } BOOL CClassView::DeleteAllItems() { - TRACE("My delete items at class view!\n"); WalkThroughAllItemsDataAndDeleteIt(GetRootItem()); return CTreeCtrl::DeleteAllItems(); --- 668,683 ---- case FT_C: //In case of C,CPP files return GetImageFTC(acc); case FT_JAVA: return GetImageFTJAVA(acc); + case FT_PYTHON: + return GetImageFTPYTHON(acc); break; } ! return IMG_GENERAL; } BOOL CClassView::DeleteAllItems() { WalkThroughAllItemsDataAndDeleteIt(GetRootItem()); return CTreeCtrl::DeleteAllItems(); *************** *** 706,710 **** BOOL CClassView::DeleteItem(HTREEITEM hItem) { - TRACE("My delete single item at class view!\n"); DWORD dwData=GetItemData(hItem); if (dwData!=0) --- 686,689 ---- Index: ClassView.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/ClassView.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** ClassView.h 18 Nov 2003 11:27:22 -0000 1.16 --- ClassView.h 19 Nov 2003 08:41:56 -0000 1.17 *************** *** 10,13 **** --- 10,30 ---- #include "TagList.h" + #define IMG_CLASS 0 + #define IMG_PUB_FUNC 1 + #define IMG_PUB_VAR 2 + #define IMG_PRO_FUNC 3 + #define IMG_PRI_FUNC 4 + #define IMG_PROJECT 5 + #define IMG_IMPORT 6 + #define IMG_IMPORT_ARR 7 + #define IMG_FUNC 8 + #define IMG_VAR 9 + #define IMG_PRO_VAR 10 + #define IMG_PRI_VAR 11 + #define IMG_CATEGORY 12 + #define IMG_GENERAL 13 + + + ///////////////////////////////////////////////////////////////////////////// // CClassView window Index: TagList.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/TagList.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TagList.cpp 18 Nov 2003 11:27:22 -0000 1.9 --- TagList.cpp 19 Nov 2003 08:41:56 -0000 1.10 *************** *** 23,27 **** CTagList::~CTagList() { - TRACE("CTagList destructor passed!\n"); ClearAllContents(); } --- 23,26 ---- *************** *** 59,65 **** } ! void CTagList::AddEntry ! (CTagEntry ! * ent) { switch (ent->type) --- 58,62 ---- } ! void CTagList::AddEntry(CTagEntry * ent) { switch (ent->type) *************** *** 70,74 **** break; case 'e': - break; case 'f': case 'v': --- 67,70 ---- *************** *** 85,89 **** break; default: ! otherlist.AddTail(ent); } } --- 81,86 ---- break; default: ! delete ent; ! ent=NULL; } } *************** *** 146,151 **** void CTagList::ClearAllContents() { ! ! POSITION pos = classlist.GetHeadPosition(); while(pos != NULL) { --- 143,147 ---- void CTagList::ClearAllContents() { ! POSITION pos = classlist.GetHeadPosition(); while(pos != NULL) { *************** *** 162,166 **** * ent = (CTagEntry *)functionlist.GetNext(pos); ! delete ent; } --- 158,162 ---- * ent = (CTagEntry *)functionlist.GetNext(pos); ! delete ent; } *************** *** 203,206 **** --- 199,203 ---- classlist.RemoveAt(posold); delete ent; + ent=NULL; } } *************** *** 220,223 **** --- 217,221 ---- functionlist.RemoveAt(posold); delete ent; + ent = NULL; } } *************** *** 237,240 **** --- 235,239 ---- otherlist.RemoveAt(posold); delete ent; + ent=NULL; } } Index: TagList.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/TagList.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TagList.h 12 Aug 2003 13:26:35 -0000 1.7 --- TagList.h 19 Nov 2003 08:41:56 -0000 1.8 *************** *** 18,21 **** --- 18,26 ---- #define FT_JS 6 + #define ACCESS_PUBLIC 1 + #define ACCESS_PRIVATE 2 + #define ACCESS_PROTECTED 3 + + class CTagEntry : public CObject Index: TagParser.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/TagParser.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** TagParser.cpp 18 Nov 2003 11:27:22 -0000 1.10 --- TagParser.cpp 19 Nov 2003 08:41:56 -0000 1.11 *************** *** 93,110 **** msc.ReturnDelimitedArray(linecontent,"\t",arr); - CTagEntry - * ent = new CTagEntry - ; - - ent->lineno = -1; - ent->tagname=""; - ent->classname=""; - ent->type=-1; - ent->access=-1; - int arrsize = arr.GetSize(); if(arrsize < 5) { - delete ent; return; } --- 93,99 ---- *************** *** 127,130 **** --- 116,127 ---- } + CTagEntry * ent = new CTagEntry; + + ent->lineno = -1; + ent->tagname=""; + ent->classname=""; + ent->type=-1; + ent->access=-1; + ent->tagname = arr.GetAt(0); ent->filename = arr.GetAt(1); *************** *** 158,199 **** } ! list->AddEntry ! (ent); ! ! /* CStringArray arr; ! msc.ReturnDelimitedArray(linecontent,"\t",arr); ! ! CTagEntry * ent = new CTagEntry; ! ! ent->lineno = -1; ! ent->tagname=""; ! ent->classname=""; ! ent->type=-1; ! ent->access=-1; ! ! int arrsize = arr.GetSize(); ! if(arrsize < 4) ! { ! delete ent; ! return; ! } ! ent->tagname = arr.GetAt(0); ! ent->filename = arr.GetAt(1); ! CString line = arr.GetAt(2); ! line = line.Left(line.GetLength()-2); ! ent->lineno = msc.GetIntForString(line); ! ent->type = arr.GetAt(3).GetAt(0); ! ! if(arrsize > 4) ! { ! for(int j=4;j<arrsize;j++) ! { ! CString lin = arr.GetAt(j); ! ProcessMoreDetails(list,ent,lin); ! } ! } ! ! list->AddEntry(ent); ! */ } --- 155,159 ---- } ! list->AddEntry(ent); } *************** *** 224,236 **** else if(line == "public") { ! acc = 1; } else if(line == "private") { ! acc = 2; } else if(line == "protected") { ! acc = 3; } --- 184,196 ---- else if(line == "public") { ! acc = ACCESS_PUBLIC; } else if(line == "private") { ! acc = ACCESS_PRIVATE; } else if(line == "protected") { ! acc = ACCESS_PROTECTED; } Index: ToDo.txt =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/ToDo.txt,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ToDo.txt 18 Nov 2003 04:09:50 -0000 1.18 --- ToDo.txt 19 Nov 2003 08:41:56 -0000 1.19 *************** *** 12,16 **** ======================= 1) Rewrite entire workspace handling with support for project compilation and build ! 2) A Very good plugin architecture... possibly with events and configurable menu items 3) Error handling facilities.. Marking errors, warnings and taking to a line on clicking error 4) Save find replace options and contents in registry. --- 12,16 ---- ======================= 1) Rewrite entire workspace handling with support for project compilation and build ! 2) A Very good plugin architecture... possibly with events and configurable menu items [Started] 3) Error handling facilities.. Marking errors, warnings and taking to a line on clicking error 4) Save find replace options and contents in registry. |