Signed-off-by: Huw Davies huw@codeweavers.com --- dlls/riched20/editor.c | 5 +++-- dlls/riched20/editor.h | 2 +- dlls/riched20/para.c | 20 +++++++++----------- 3 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index e512f2f9ed6..e988eb9a014 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -3213,10 +3213,11 @@ void ME_DestroyEditor(ME_TextEditor *editor) ME_ClearTempStyle(editor); ME_EmptyUndoStack(editor); editor->pBuffer->pFirst = NULL; - while(p) { + while(p) + { pNext = p->next; if (p->type == diParagraph) - destroy_para(editor, p); + para_destroy( editor, &p->member.para ); else ME_DestroyDisplayItem(p); p = pNext; diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h index ad7978c1f9d..4412a574262 100644 --- a/dlls/riched20/editor.h +++ b/dlls/riched20/editor.h @@ -75,7 +75,6 @@ ME_DisplayItem *ME_FindItemBackOrHere(ME_DisplayItem *di, ME_DIType nTypeOrClass ME_DisplayItem *ME_MakeDI(ME_DIType type) DECLSPEC_HIDDEN; void ME_DestroyDisplayItem(ME_DisplayItem *item) DECLSPEC_HIDDEN; void ME_DumpDocument(ME_TextBuffer *buffer) DECLSPEC_HIDDEN; -void destroy_para(ME_TextEditor *editor, ME_DisplayItem *item) DECLSPEC_HIDDEN;
/* string.c */ ME_String *ME_MakeStringN(LPCWSTR szText, int nMaxChars) DECLSPEC_HIDDEN; @@ -205,6 +204,7 @@ void ME_GetSelectionParaFormat(ME_TextEditor *editor, PARAFORMAT2 *pFmt) DECLSPE void ME_MarkAllForWrapping(ME_TextEditor *editor) DECLSPEC_HIDDEN; void ME_SetDefaultParaFormat(ME_TextEditor *editor, PARAFORMAT2 *pFmt) DECLSPEC_HIDDEN; int get_total_width(ME_TextEditor *editor) DECLSPEC_HIDDEN; +void para_destroy( ME_TextEditor *editor, ME_Paragraph *item ) DECLSPEC_HIDDEN; ME_Run *para_end_run( ME_Paragraph *para ) DECLSPEC_HIDDEN; ME_Run *para_first_run( ME_Paragraph *para ) DECLSPEC_HIDDEN; ME_Paragraph *para_join( ME_TextEditor *editor, ME_Paragraph *para, BOOL use_first_fmt ) DECLSPEC_HIDDEN; diff --git a/dlls/riched20/para.c b/dlls/riched20/para.c index 41debcac1bd..0e1ceae9bbb 100644 --- a/dlls/riched20/para.c +++ b/dlls/riched20/para.c @@ -39,20 +39,18 @@ static ME_Paragraph *para_create( ME_TextEditor *editor ) return &item->member.para; }
-void destroy_para(ME_TextEditor *editor, ME_DisplayItem *item) +void para_destroy( ME_TextEditor *editor, ME_Paragraph *para ) { - assert(item->type == diParagraph); - - if (item->member.para.nWidth == editor->nTotalWidth) + if (para->nWidth == editor->nTotalWidth) { - item->member.para.nWidth = 0; + para->nWidth = 0; editor->nTotalWidth = get_total_width(editor); } - editor->total_rows -= item->member.para.nRows; - ME_DestroyString(item->member.para.text); - para_num_clear( &item->member.para.para_num ); - para_mark_remove( editor, &item->member.para ); - ME_DestroyDisplayItem(item); + editor->total_rows -= para->nRows; + ME_DestroyString( para->text ); + para_num_clear( ¶->para_num ); + para_mark_remove( editor, para ); + ME_DestroyDisplayItem( para_get_di( para ) ); }
/* Note para_next/prev will return the start and end doc nodes */ @@ -762,7 +760,7 @@ ME_Paragraph *para_join( ME_TextEditor *editor, ME_Paragraph *para, BOOL use_fir para->next_para = next->next_para; next->next_para->member.para.prev_para = para_get_di( para ); ME_Remove( para_get_di(next) ); - destroy_para( editor, para_get_di( next ) ); + para_destroy( editor, next );
ME_PropagateCharOffset( para->next_para, -end_len );