author | erik <erik> | 2007-02-08 01:45:16 (UTC) |
---|---|---|
committer | erik <erik> | 2007-02-08 01:45:16 (UTC) |
commit | 2e497f7cae45184184e2416114887095735958f5 (patch) (unidiff) | |
tree | a6b399d9bce5854dc7ad6c985b48965cf20680b0 /noncore/apps | |
parent | 853b61f97e718359bef95147ab3c7beb0705acda (diff) | |
download | opie-2e497f7cae45184184e2416114887095735958f5.zip opie-2e497f7cae45184184e2416114887095735958f5.tar.gz opie-2e497f7cae45184184e2416114887095735958f5.tar.bz2 |
Each file in this commit has a problem where it is possible to dereference
a pointer without that pointer being valid. This commit fixes each instance
of that.
-rw-r--r-- | noncore/apps/opie-write/qrichtext.cpp | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/noncore/apps/opie-write/qrichtext.cpp b/noncore/apps/opie-write/qrichtext.cpp index f040f1e..768da44 100644 --- a/noncore/apps/opie-write/qrichtext.cpp +++ b/noncore/apps/opie-write/qrichtext.cpp | |||
@@ -191,5 +191,8 @@ QTextCursor *QTextDeleteCommand::execute( QTextCursor *c ) | |||
191 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; | 191 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; |
192 | if ( !s ) { | 192 | if ( !s && doc ) { |
193 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; | 193 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; |
194 | return 0; | 194 | return 0; |
195 | } else if ( !doc ) { | ||
196 | owarn << "No valid doc" << oendl; | ||
197 | return 0; | ||
195 | } | 198 | } |
@@ -219,5 +222,8 @@ QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) | |||
219 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; | 222 | QTextParagraph *s = doc ? doc->paragAt( id ) : parag; |
220 | if ( !s ) { | 223 | if ( !s && doc ) { |
221 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; | 224 | owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; |
222 | return 0; | 225 | return 0; |
226 | } else if ( !doc ) { | ||
227 | owarn << "No valid doc" << oendl; | ||
228 | return 0; | ||
223 | } | 229 | } |
@@ -235,2 +241,5 @@ QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) | |||
235 | c->gotoNextLetter(); | 241 | c->gotoNextLetter(); |
242 | } else { | ||
243 | owarn << "No valid cursor" << oendl; | ||
244 | return 0; | ||
236 | } | 245 | } |
@@ -1394,6 +1403,17 @@ struct Q_EXPORT QTextDocumentTag { | |||
1394 | 1403 | ||
1395 | #define NEWPAR do{ if ( !hasNewPar) { \ | 1404 | #define NEWPAR do { \ |
1405 | if ( !hasNewPar) { \ | ||
1406 | if ( !curpar ) { \ | ||
1407 | owarn << "no current paragraph" << oendl; \ | ||
1408 | return; \ | ||
1409 | } \ | ||
1396 | if ( !textEditMode && curpar && curpar->length()>1 && curpar->at( curpar->length()-2)->c == QChar_linesep ) \ | 1410 | if ( !textEditMode && curpar && curpar->length()>1 && curpar->at( curpar->length()-2)->c == QChar_linesep ) \ |
1397 | curpar->remove( curpar->length()-2, 1 ); \ | 1411 | curpar->remove( curpar->length()-2, 1 ); \ |
1398 | curpar = createParagraph( this, curpar, curpar->next() ); styles.append( vec ); vec = 0;} \ | 1412 | curpar = createParagraph( this, curpar, curpar->next() ); styles.append( vec ); \ |
1413 | if ( !curpar ) { \ | ||
1414 | owarn << "failed in creating a new paragraph" << oendl; \ | ||
1415 | return; \ | ||
1416 | } \ | ||
1417 | vec = 0; \ | ||
1418 | } \ | ||
1399 | hasNewPar = TRUE; \ | 1419 | hasNewPar = TRUE; \ |
@@ -1405,3 +1425,4 @@ struct Q_EXPORT QTextDocumentTag { | |||
1405 | space = TRUE; \ | 1425 | space = TRUE; \ |
1406 | delete vec; vec = new QPtrVector<QStyleSheetItem>( (uint)tags.count() + 1); \ | 1426 | delete vec; \ |
1427 | vec = new QPtrVector<QStyleSheetItem>( (uint)tags.count() + 1); \ | ||
1407 | int i = 0; \ | 1428 | int i = 0; \ |
@@ -1412,3 +1433,2 @@ struct Q_EXPORT QTextDocumentTag { | |||
1412 | 1433 | ||
1413 | |||
1414 | void QTextDocument::setRichText( const QString &text, const QString &context ) | 1434 | void QTextDocument::setRichText( const QString &text, const QString &context ) |
@@ -1897,4 +1917,7 @@ void QTextDocument::setRichTextMarginsInternal( QPtrList< QPtrVector<QStyleSheet | |||
1897 | int i, mar; | 1917 | int i, mar; |
1898 | QStyleSheetItem* mainStyle = curStyle->size() ? (*curStyle)[curStyle->size()-1] : 0; | 1918 | QStyleSheetItem* mainStyle = (*curStyle)[curStyle->size()-1]; |
1899 | if ( mainStyle && mainStyle->displayMode() == QStyleSheetItem::DisplayListItem ) | 1919 | if ( !mainStyle ) |
1920 | return; | ||
1921 | |||
1922 | if ( mainStyle->displayMode() == QStyleSheetItem::DisplayListItem ) | ||
1900 | stylesPar->setListItem( TRUE ); | 1923 | stylesPar->setListItem( TRUE ); |
@@ -5343,3 +5366,3 @@ int QTextFormatterBreakWords::format( QTextDocument *doc, QTextParagraph *parag, | |||
5343 | // ### next line should not be needed | 5366 | // ### next line should not be needed |
5344 | if ( painter ) | 5367 | if ( c && painter ) |
5345 | c->format()->setPainter( painter ); | 5368 | c->format()->setPainter( painter ); |