From a3bca843ba05effdf01143bf4413c5603504948c Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 7 Dec 2015 16:17:31 +0100 Subject: Set minimum line height to "strut" height per CSS. Prevent possible infinite loops with empty lines. (bzr r14507) --- src/libnrtype/Layout-TNG-Compute.cpp | 56 ++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/libnrtype/Layout-TNG-Compute.cpp b/src/libnrtype/Layout-TNG-Compute.cpp index 1e8fb0fb1..e862f0657 100644 --- a/src/libnrtype/Layout-TNG-Compute.cpp +++ b/src/libnrtype/Layout-TNG-Compute.cpp @@ -255,7 +255,8 @@ static void dumpUnbrokenSpans(ParagraphInfo *para){ UnbrokenSpanPosition const &start_span_pos, ScanlineMaker::ScanRun const &scan_run, std::vector *chunk_info, - FontMetrics *line_height) const; + FontMetrics *line_height, + FontMetrics const *strut_height) const; /** computes the width of a single UnbrokenSpan (pointed to by span->start.iter_span) and outputs its vital statistics into the other fields of \a span. @@ -1456,34 +1457,25 @@ bool Layout::Calculator::_findChunksForLine(ParagraphInfo const ¶, std::vector *chunk_info, FontMetrics *line_box_height) { - TRACE((" begin _findChunksForLine: chunks: %lu\n", chunk_info->size())); - // init the initial line_box_height - if (start_span_pos->iter_span == para.unbroken_spans.end()) { - if (_flow._spans.empty()) { - // empty first para: create a font for the sole purpose of measuring it - InputStreamTextSource const *text_source = static_cast(_flow._input_stream.front()); - font_instance *font = text_source->styleGetFontInstance(); - if (font) { - double multiplier = _computeFontLineHeight(text_source->style); - line_box_height->set( font ); - *line_box_height *= text_source->style->font_size.computed; - font->Unref(); - line_box_height->computeEffective( multiplier ); - TRACE((" initial next line top_of_line_box: %f\n", _scanline_maker->yCoordinate() - line_box_height->ascent )); - _scanline_maker->setNewYCoordinate(_scanline_maker->yCoordinate() - line_box_height->ascent); - } - } - // else empty subsequent para: keep the old line height + TRACE((" begin _findChunksForLine: chunks: %lu, em size: %f\n", chunk_info->size(), line_box_height->emSize() )); + + // CSS 2.1 dictates that the minimum line height (i.e. the strut height) is found from the block element. This, + // however, is not what the browsers seem to be doing. Instead, find the height from the first text source. + InputStreamTextSource const *text_source = static_cast(_flow._input_stream.front()); + font_instance *font = text_source->styleGetFontInstance(); + if (font) { + double multiplier = _computeFontLineHeight(text_source->style); + line_box_height->set( font ); + *line_box_height *= text_source->style->font_size.computed; + font->Unref(); + line_box_height->computeEffective( multiplier ); } else { - if (_flow._input_wrap_shapes.empty()) { - // if we're not wrapping set the line_box_height big and negative so we can use negative line height - line_box_height->ascent = -1.0e10; - line_box_height->descent = -1.0e10; - } - else - line_box_height->setZero(); + std::cerr << "Layout::Calculator::_findChunksForLine: Font not found." << std::endl; } - TRACE((" initial line_box_height: %f\n", line_box_height->emSize() )); + TRACE((" initial line_box_height (em size): %f\n", line_box_height->emSize() )); + + // Save strut height for use when recalculating line height after backing out chunks that don't fit. + FontMetrics strut_height = *line_box_height; UnbrokenSpanPosition span_pos; for( ; ; ) { @@ -1502,7 +1494,7 @@ bool Layout::Calculator::_findChunksForLine(ParagraphInfo const ¶, unsigned scan_run_index; span_pos = *start_span_pos; for (scan_run_index = 0 ; scan_run_index < scan_runs.size() ; scan_run_index++) { - if (!_buildChunksInScanRun(para, span_pos, scan_runs[scan_run_index], chunk_info, line_box_height)) + if (!_buildChunksInScanRun(para, span_pos, scan_runs[scan_run_index], chunk_info, line_box_height, &strut_height)) break; if (!chunk_info->empty() && !chunk_info->back().broken_spans.empty()) span_pos = chunk_info->back().broken_spans.back().end; @@ -1533,9 +1525,11 @@ bool Layout::Calculator::_buildChunksInScanRun(ParagraphInfo const ¶, UnbrokenSpanPosition const &start_span_pos, ScanlineMaker::ScanRun const &scan_run, std::vector *chunk_info, - FontMetrics *line_height) const + FontMetrics *line_height, + FontMetrics const *strut_height) const { - TRACE((" begin _buildChunksInScanRun: chunks: %lu\n", chunk_info->size())); + TRACE((" begin _buildChunksInScanRun: chunks: %lu, em size: %f\n", chunk_info->size(), line_height->emSize() )); + ChunkInfo new_chunk; new_chunk.text_width = 0.0; new_chunk.whitespace_count = 0; @@ -1641,7 +1635,7 @@ bool Layout::Calculator::_buildChunksInScanRun(ParagraphInfo const ¶, } // Recalculate line_box_height after backing out chunks - line_height->setZero(); + *line_height = *strut_height; for (std::vector::const_iterator it_chunk = chunk_info->begin() ; it_chunk != chunk_info->end() ; it_chunk++) { for (std::vector::const_iterator it_span = it_chunk->broken_spans.begin() ; it_span != it_chunk->broken_spans.end() ; it_span++) { TRACE((" brokenspan line_height: %f\n", it_span->start.iter_span->line_height.emSize() )); -- cgit v1.2.3 From ddc6177836028eca89fb701ad2e5e923cb94ae87 Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Mon, 7 Dec 2015 21:18:04 +0100 Subject: static code analysis (bzr r14508) --- src/helper/png-write.cpp | 6 +++--- src/sp-marker.cpp | 22 +++++++++++++--------- src/sp-star.cpp | 13 +++++++------ src/ui/uxmanager.cpp | 9 +++++---- src/widgets/toolbox.cpp | 18 +++++++++--------- 5 files changed, 37 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/helper/png-write.cpp b/src/helper/png-write.cpp index fc365c435..9430feeff 100644 --- a/src/helper/png-write.cpp +++ b/src/helper/png-write.cpp @@ -128,6 +128,9 @@ sp_png_write_rgba_striped(SPDocument *doc, int (* get_rows)(guchar const **rows, void **to_free, int row, int num_rows, void *data), void *data) { + g_return_val_if_fail(filename != NULL, false); + g_return_val_if_fail(data != NULL, false); + struct SPEBP *ebp = (struct SPEBP *) data; FILE *fp; png_structp png_ptr; @@ -135,9 +138,6 @@ sp_png_write_rgba_striped(SPDocument *doc, png_color_8 sig_bit; png_uint_32 r; - g_return_val_if_fail(filename != NULL, false); - g_return_val_if_fail(data != NULL, false); - /* open the file */ Inkscape::IO::dump_fopen_call(filename, "M"); diff --git a/src/sp-marker.cpp b/src/sp-marker.cpp index 9334614dc..88dfbe04e 100644 --- a/src/sp-marker.cpp +++ b/src/sp-marker.cpp @@ -43,14 +43,18 @@ public: std::vector items; }; -SPMarker::SPMarker() : SPGroup(), SPViewBox() { - - this->markerUnits = 0; - this->markerUnits_set = 0; - - this->orient_mode = MARKER_ORIENT_ANGLE; - this->orient_set = 0; - this->orient = 0; +SPMarker::SPMarker() : SPGroup(), SPViewBox(), + markerUnits_set(0), + markerUnits(0), + refX(), + refY(), + markerWidth(), + markerHeight(), + orient_set(0), + orient_mode(MARKER_ORIENT_ANGLE) +{ + // cppcheck-suppress useInitializationList + orient = 0; } /** @@ -442,7 +446,7 @@ const gchar *generate_marker(std::vector &reprs, Geom::Rec const gchar *mark_id = repr->attribute("id"); SPObject *mark_object = document->getObjectById(mark_id); - for (std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ + for (std::vector::const_iterator i=reprs.begin();i!=reprs.end();++i){ Inkscape::XML::Node *node = *i; SPItem *copy = SP_ITEM(mark_object->appendChildRepr(node)); diff --git a/src/sp-star.cpp b/src/sp-star.cpp index 51d5e6254..8a1956e3b 100644 --- a/src/sp-star.cpp +++ b/src/sp-star.cpp @@ -32,15 +32,16 @@ #include "sp-star.h" -SPStar::SPStar() : SPPolygon() { - this->sides = 5; - this->center = Geom::Point(0, 0); +SPStar::SPStar() : SPPolygon() , + sides(5), + center(0, 0), + flatsided(0), + rounded(0.0), + randomized(0.0) +{ this->r[0] = 1.0; this->r[1] = 0.001; this->arg[0] = this->arg[1] = 0.0; - this->flatsided = 0; - this->rounded = 0.0; - this->randomized = 0.0; } SPStar::~SPStar() { diff --git a/src/ui/uxmanager.cpp b/src/ui/uxmanager.cpp index 051df691e..036659661 100644 --- a/src/ui/uxmanager.cpp +++ b/src/ui/uxmanager.cpp @@ -244,12 +244,13 @@ void UXManagerImpl::delTrack( SPDesktopWidget* dtw ) void UXManagerImpl::connectToDesktop( vector const & toolboxes, SPDesktop *desktop ) { - TrackItem &tracker = trackedBoxes[desktop]; - vector& tracked = tracker.boxes; - if (desktop) + if (!desktop) { - tracker.destroyConn = desktop->connectDestroy(&desktopDestructHandler); + return; } + TrackItem &tracker = trackedBoxes[desktop]; + vector& tracked = tracker.boxes; + tracker.destroyConn = desktop->connectDestroy(&desktopDestructHandler); for (vector::const_iterator it = toolboxes.begin(); it != toolboxes.end(); ++it ) { GtkWidget* toolbox = *it; diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index c3f301c52..b75cdb4be 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -943,8 +943,12 @@ static Glib::RefPtr create_or_fetch_actions( SPDesktop* deskto }; Inkscape::IconSize toolboxSize = ToolboxFactory::prefToSize("/toolbox/small"); - Glib::RefPtr mainActions; + if (desktop == NULL) + { + return mainActions; + } + if ( groups.find(desktop) != groups.end() ) { mainActions = groups[desktop]; } @@ -952,10 +956,7 @@ static Glib::RefPtr create_or_fetch_actions( SPDesktop* deskto if ( !mainActions ) { mainActions = Gtk::ActionGroup::create("main"); groups[desktop] = mainActions; - if (desktop) - { - desktop->connectDestroy(&desktopDestructHandler); - } + desktop->connectDestroy(&desktopDestructHandler); } for ( guint i = 0; i < G_N_ELEMENTS(verbsToUse); i++ ) { @@ -1558,13 +1559,12 @@ static void toggle_snap_callback(GtkToggleAction *act, gpointer data) //data poi SPDesktop *dt = reinterpret_cast(ptr); SPNamedView *nv = dt->getNamedView(); - SPDocument *doc = nv->document; - - if (dt == NULL || nv == NULL) { - g_warning("No desktop or namedview specified (in toggle_snap_callback)!"); + if (nv == NULL) { + g_warning("No namedview specified (in toggle_snap_callback)!"); return; } + SPDocument *doc = nv->document; Inkscape::XML::Node *repr = nv->getRepr(); if (repr == NULL) { -- cgit v1.2.3 From c54db8d887cae2bd6dd326a10f976c726f905e7d Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Mon, 7 Dec 2015 21:19:14 +0100 Subject: static code analysis (bzr r14509) --- src/seltrans.cpp | 10 +++++----- src/snapper.h | 2 +- src/sp-conn-end.cpp | 2 +- src/sp-defs.cpp | 2 +- src/sp-item-group.cpp | 20 ++++++++++---------- src/sp-lpe-item.cpp | 10 +++++----- src/sp-switch.cpp | 4 ++-- src/text-chemistry.cpp | 16 ++++++++-------- src/text-editing.cpp | 2 +- src/vanishing-point.cpp | 8 ++++---- 10 files changed, 38 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 17d704975..f010a687d 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -241,7 +241,7 @@ void Inkscape::SelTrans::setCenter(Geom::Point const &p) // Write the new center position into all selected items std::vector items=_desktop->selection->itemList(); - for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = SP_ITEM(*iter); it->setCenter(p); // only set the value; updating repr and document_done will be done once, on ungrab @@ -271,7 +271,7 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s } std::vector items=_desktop->selection->itemList(); - for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = static_cast(sp_object_ref(*iter, NULL)); _items.push_back(it); _items_const.push_back(it); @@ -493,7 +493,7 @@ void Inkscape::SelTrans::ungrab() if (_center_is_set) { // we were dragging center; update reprs and commit undoable action std::vector items=_desktop->selection->itemList(); - for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = *iter; it->updateRepr(); } @@ -534,7 +534,7 @@ void Inkscape::SelTrans::stamp() _stamp_cache = l; } - for(std::vector::const_iterator x=l.begin();x!=l.end();x++) { + for(std::vector::const_iterator x=l.begin();x!=l.end(); ++x) { SPItem *original_item = *x; Inkscape::XML::Node *original_repr = original_item->getRepr(); @@ -712,7 +712,7 @@ void Inkscape::SelTrans::handleClick(SPKnot */*knot*/, guint state, SPSelTransHa if (state & GDK_SHIFT_MASK) { // Unset the center position for all selected items std::vector items=_desktop->selection->itemList(); - for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end(); ++iter) { SPItem *it = *iter; it->unsetCenter(); it->updateRepr(); diff --git a/src/snapper.h b/src/snapper.h index 24f9b9442..6c7995045 100644 --- a/src/snapper.h +++ b/src/snapper.h @@ -77,7 +77,7 @@ public: // Constructs a linear constraint SnapConstraint(Geom::Point const &p, Geom::Point const &d) : _point(p), _direction(d), _radius(0), _type(LINE) {} // Orthogonal version - SnapConstraint(Geom::Point const &p, Geom::Dim2 const &d) : _point(p), _radius(0), _type(LINE) {_direction = Geom::Point(); _direction[d] = 1.;} + SnapConstraint(Geom::Point const &p, Geom::Dim2 const &d) : _point(p), _direction(), _radius(0), _type(LINE) {_direction[d] = 1.;} SnapConstraint(Geom::Line const &l) : _point(l.origin()), _direction(l.versor()), _radius(0), _type(LINE) {} // Constructs a circular constraint SnapConstraint(Geom::Point const &p, Geom::Point const &d, Geom::Coord const &r) : _point(p), _direction(d), _radius(r), _type(CIRCLE) {} diff --git a/src/sp-conn-end.cpp b/src/sp-conn-end.cpp index fa5a57529..75cce4374 100644 --- a/src/sp-conn-end.cpp +++ b/src/sp-conn-end.cpp @@ -51,7 +51,7 @@ static bool try_get_intersect_point_with_item_recursive(Geom::PathVector& conn_p // consider all first-order children double child_pos = 0.0; std::vector g = sp_item_group_item_list(group); - for (std::vector::const_iterator i = g.begin();i!=g.end();i++) { + for (std::vector::const_iterator i = g.begin();i!=g.end();++i) { SPItem* child_item = *i; try_get_intersect_point_with_item_recursive(conn_pv, child_item, item_transform * child_item->transform, child_pos); diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index 2e341d3c6..dd779c0da 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -37,7 +37,7 @@ void SPDefs::update(SPCtx *ctx, guint flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; std::vector l(this->childList(true)); - for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ SPObject *child = *i; if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->updateDisplay(ctx, flags); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 5d96899b1..8cd0bf8d3 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -162,7 +162,7 @@ void SPGroup::update(SPCtx *ctx, unsigned int flags) { } childflags &= SP_OBJECT_MODIFIED_CASCADE; std::vector l=this->childList(true, SPObject::ActionUpdate); - for(std::vector ::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector ::const_iterator i=l.begin();i!=l.end();++i){ SPObject *child = *i; if (childflags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { @@ -206,7 +206,7 @@ void SPGroup::modified(guint flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; std::vector l=this->childList(true); - for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ SPObject *child = *i; if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { @@ -280,7 +280,7 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox // TODO CPPIFY: replace this const_cast later std::vector l = const_cast(this)->childList(false, SPObject::ActionBBox); - for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ SPObject *o = *i; SPItem *item = dynamic_cast(o); if (item && !item->isHidden()) { @@ -294,7 +294,7 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox void SPGroup::print(SPPrintContext *ctx) { std::vector l=this->childList(false); - for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ SPObject *o = *i; SPItem *item = dynamic_cast(o); if (item) { @@ -348,7 +348,7 @@ Inkscape::DrawingItem *SPGroup::show (Inkscape::Drawing &drawing, unsigned int k void SPGroup::hide (unsigned int key) { std::vector l=this->childList(false, SPObject::ActionShow); - for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ SPObject *o = *i; SPItem *item = dynamic_cast(o); @@ -373,7 +373,7 @@ void SPGroup::snappoints(std::vector &p, Inkscape: void sp_item_group_ungroup_handle_clones(SPItem *parent, Geom::Affine const g) { - for(std::list::const_iterator refd=parent->hrefList.begin();refd!=parent->hrefList.end();refd++){ + for(std::list::const_iterator refd=parent->hrefList.begin();refd!=parent->hrefList.end();++refd){ SPItem *citem = dynamic_cast(*refd); if (citem && !citem->cloned) { SPUse *useitem = dynamic_cast(citem); @@ -781,7 +781,7 @@ gint SPGroup::getItemCount() const { void SPGroup::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) { Inkscape::DrawingItem *ac = NULL; std::vector l=this->childList(false, SPObject::ActionShow); - for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ + for(std::vector::const_iterator i=l.begin();i!=l.end();++i){ SPObject *o = *i; SPItem * child = dynamic_cast(o); if (child) { @@ -800,7 +800,7 @@ void SPGroup::update_patheffect(bool write) { std::vector const item_list = sp_item_group_item_list(this); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; SPLPEItem *lpeItem = dynamic_cast(subitem); @@ -810,7 +810,7 @@ void SPGroup::update_patheffect(bool write) { } if (hasPathEffect() && pathEffectsEnabled()) { - for (PathEffectList::iterator it = this->path_effect_list->begin(); it != this->path_effect_list->end(); it++) + for (PathEffectList::iterator it = this->path_effect_list->begin(); it != this->path_effect_list->end(); ++it) { LivePathEffectObject *lpeobj = (*it)->lpeobject; @@ -828,7 +828,7 @@ sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup, bool write) { std::vector const item_list = sp_item_group_item_list(group); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; SPGroup *subGroup = dynamic_cast(subitem); diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 9befd2a2b..98b77cfe8 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -354,7 +354,7 @@ sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem) } if (SP_IS_GROUP(lpeitem)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(subitem)); @@ -388,7 +388,7 @@ sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem) } } std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(subitem)); @@ -681,7 +681,7 @@ SPLPEItem::apply_to_clippath(SPItem *item) } if(SP_IS_GROUP(item)){ std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; apply_to_clippath(SP_ITEM(subitem)); } @@ -733,7 +733,7 @@ SPLPEItem::apply_to_mask(SPItem *item) } if(SP_IS_GROUP(item)){ std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; apply_to_mask(SP_ITEM(subitem)); } @@ -747,7 +747,7 @@ SPLPEItem::apply_to_clip_or_mask_group(SPItem *group, SPItem *item) return; } std::vector item_list = sp_item_group_item_list(SP_GROUP(group)); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();++iter) { SPObject *subitem = *iter; if (SP_IS_GROUP(subitem)) { apply_to_clip_or_mask_group(SP_ITEM(subitem), item); diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index cfc0e7d8b..d2dcde15d 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -97,7 +97,7 @@ void SPSwitch::_reevaluate(bool /*add_to_drawing*/) { _releaseLastItem(_cached_item); std::vector item_list = _childList(false, SPObject::ActionShow); - for ( std::vector::const_reverse_iterator iter=item_list.rbegin();iter!=item_list.rend();iter++) { + for ( std::vector::const_reverse_iterator iter=item_list.rbegin();iter!=item_list.rend();++iter) { SPObject *o = *iter; if ( !SP_IS_ITEM (o) ) { continue; @@ -132,7 +132,7 @@ void SPSwitch::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem std::vector l = this->_childList(false, SPObject::ActionShow); - for ( std::vector::const_reverse_iterator iter=l.rbegin();iter!=l.rend();iter++) { + for ( std::vector::const_reverse_iterator iter=l.rbegin();iter!=l.rend();++iter) { SPObject *o = *iter; if (SP_IS_ITEM (o)) { diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 9fc862ad2..fbbbe5807 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -44,7 +44,7 @@ static SPItem * flowtext_in_selection(Inkscape::Selection *selection) { std::vector items = selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_FLOWTEXT(*i)) return *i; } @@ -55,7 +55,7 @@ static SPItem * text_or_flowtext_in_selection(Inkscape::Selection *selection) { std::vector items = selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) return *i; } @@ -66,7 +66,7 @@ static SPItem * shape_in_selection(Inkscape::Selection *selection) { std::vector items = selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (SP_IS_SHAPE(*i)) return *i; } @@ -197,7 +197,7 @@ text_remove_from_path() bool did = false; std::vector items(selection->itemList()); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *obj = *i; if (SP_IS_TEXT_TEXTPATH(obj)) { @@ -261,7 +261,7 @@ text_remove_all_kerns() bool did = false; std::vector items = selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *obj = *i; if (!SP_IS_TEXT(obj) && !SP_IS_TSPAN(obj) && !SP_IS_FLOWTEXT(obj)) { @@ -321,7 +321,7 @@ text_flow_into_shape() /* Add clones */ std::vector items = selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; if (SP_IS_SHAPE(item)){ Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); @@ -396,7 +396,7 @@ text_unflow () GSList *old_objs = NULL; std::vector items = selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ if (!SP_IS_FLOWTEXT(*i)) { continue; @@ -481,7 +481,7 @@ flowtext_to_text() std::vector reprs; std::vector items(selection->itemList()); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; diff --git a/src/text-editing.cpp b/src/text-editing.cpp index d9cebc625..057523b1e 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -68,7 +68,7 @@ void te_update_layout_now_recursive(SPItem *item) { if (SP_IS_GROUP(item)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); - for(std::vector::const_iterator i=item_list.begin();i!=item_list.end();i++){ + for(std::vector::const_iterator i=item_list.begin();i!=item_list.end();++i){ SPItem* list_item = *i; te_update_layout_now_recursive(list_item); } diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index 553e3a31d..19750bd37 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -259,7 +259,7 @@ std::list VanishingPoint::selectedBoxes(Inkscape::Selection *sel) { std::list sel_boxes; std::vector itemlist=sel->itemList(); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box && this->hasBox(box)) { @@ -399,7 +399,7 @@ VPDragger::VPsOfSelectedBoxes() { // FIXME: Should we take the selection from the parent VPDrag? I guess it shouldn't make a difference. Inkscape::Selection *sel = SP_ACTIVE_DESKTOP->getSelection(); std::vector itemlist=sel->itemList(); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box) { @@ -582,7 +582,7 @@ VPDrag::updateDraggers () g_return_if_fail (this->selection != NULL); std::vector itemlist=this->selection->itemList(); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box) { @@ -615,7 +615,7 @@ VPDrag::updateLines () g_return_if_fail (this->selection != NULL); std::vector itemlist=this->selection->itemList(); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i) { SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box) { -- cgit v1.2.3 From 25fbd2cc032dd472c3f85468c957b52e2a10d446 Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Mon, 7 Dec 2015 21:20:33 +0100 Subject: static code analysis (bzr r14510) --- src/extension/implementation/script.cpp | 2 +- src/extension/internal/bitmap/imagemagick.cpp | 2 +- src/extension/internal/cairo-render-context.cpp | 6 +++--- src/live_effects/lpe-knot.cpp | 2 +- src/live_effects/parameter/originalpatharray.cpp | 2 +- src/trace/trace.cpp | 2 +- src/ui/clipboard.cpp | 4 ++-- src/ui/dialog/grid-arrange-tab.cpp | 2 +- src/ui/interface.cpp | 4 ++-- src/ui/tools/measure-tool.cpp | 4 ++-- src/ui/tools/mesh-tool.cpp | 4 ++-- src/ui/tools/node-tool.cpp | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index e07a3963c..52cc7a2ca 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -691,7 +691,7 @@ void Script::effect(Inkscape::Extension::Effect *module, std::vector selected = desktop->getSelection()->itemList(); //desktop should not be NULL since doc was checked and desktop is a casted pointer - for(std::vector::const_iterator x = selected.begin(); x != selected.end(); x++){ + for(std::vector::const_iterator x = selected.begin(); x != selected.end(); ++x){ Glib::ustring selected_id; selected_id += "--id="; selected_id += (*x)->getId(); diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index bc0dd8e33..40d548a24 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -79,7 +79,7 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems = new SPItem*[selectCount]; // Loop through selected items - for (std::vector::const_iterator i = selectedItemList.begin(); i != selectedItemList.end(); i++) { + for (std::vector::const_iterator i = selectedItemList.begin(); i != selectedItemList.end(); ++i) { SPItem *item = *i; Inkscape::XML::Node *node = reinterpret_cast(item->getRepr()); if (!strcmp(node->name(), "image") || !strcmp(node->name(), "svg:image")) diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index c3e416184..97b84606f 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1182,7 +1182,7 @@ CairoRenderContext::_createHatchPainter(SPPaintServer const *const paintserver, std::vector children(evil->hatchPaths()); for (int i = 0; i < overflow_steps; i++) { - for (std::vector::iterator iter = children.begin(); iter != children.end(); iter++) { + for (std::vector::iterator iter = children.begin(); iter != children.end(); ++iter) { SPHatchPath *path = *iter; _renderer->renderHatchPath(pattern_ctx, *path, dkey); } @@ -1677,8 +1677,8 @@ CairoRenderContext::renderGlyphtext(PangoFont *font, Geom::Affine const &font_ma cairo_save(_cr); cairo_set_font_face(_cr, font_face); - if (fc_pattern && FcPatternGetDouble(fc_pattern, FC_PIXEL_SIZE, 0, &size) != FcResultMatch) - size = 12.0; + //if (fc_pattern && FcPatternGetDouble(fc_pattern, FC_PIXEL_SIZE, 0, &size) != FcResultMatch) + // size = 12.0; // set the given font matrix cairo_matrix_t matrix; diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index c3000fe0d..bf84e645d 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -507,7 +507,7 @@ static void collectPathsAndWidths (SPLPEItem const *lpeitem, Geom::PathVector &paths, std::vector &stroke_widths){ if (SP_IS_GROUP(lpeitem)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( std::vector::const_iterator iter = item_list.begin(); iter != item_list.end(); iter++) { + for ( std::vector::const_iterator iter = item_list.begin(); iter != item_list.end(); ++iter) { SPObject *subitem = *iter; if (SP_IS_LPE_ITEM(subitem)) { collectPathsAndWidths(SP_LPE_ITEM(subitem), paths, stroke_widths); diff --git a/src/live_effects/parameter/originalpatharray.cpp b/src/live_effects/parameter/originalpatharray.cpp index 9e03e2c02..7e3a6f5fe 100644 --- a/src/live_effects/parameter/originalpatharray.cpp +++ b/src/live_effects/parameter/originalpatharray.cpp @@ -245,7 +245,7 @@ void OriginalPathArrayParam::on_down_button_click() if (*iter == row[_model->_colObject]) { std::vector::iterator niter = _vector.erase(iter); if (niter != _vector.end()) { - niter++; + ++niter; i++; } _vector.insert(niter, row[_model->_colObject]); diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index 91c230920..18f03aa1b 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -74,7 +74,7 @@ SPImage *Tracer::getSelectedSPImage() them as bottom-to-top so that we can discover the image and any SPItems above it */ - for (std::vector::const_iterator i=list.begin() ; list.end()!=i ; i++) + for (std::vector::const_iterator i=list.begin() ; list.end()!=i ; ++i) { if (!SP_IS_ITEM(*i)) { diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 354fa45dc..f04d8a591 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -682,11 +682,11 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) //remove already copied elements from cloned_elements std::vectortr; - for(std::set::iterator it = cloned_elements.begin();it!=cloned_elements.end();it++){ + for(std::set::iterator it = cloned_elements.begin();it!=cloned_elements.end();++it){ if(std::find(sorted_items.begin(),sorted_items.end(),*it)!=sorted_items.end()) tr.push_back(*it); } - for(std::vector::iterator it = tr.begin();it!=tr.end();it++){ + for(std::vector::iterator it = tr.begin();it!=tr.end();++it){ cloned_elements.erase(*it); } diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 53c25c3d5..639e463ea 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -305,7 +305,7 @@ g_print("\n row = %f col = %f selection x= %f selection y = %f", total_row_h GSList *current_row = NULL; col_cnt = 0; - for(;it!=sorted.end()&&col_cnt::iterator it = types.begin() ; it != types.end() ; it++) { + for (std::vector::iterator it = types.begin() ; it != types.end() ; ++it) { completeDropTargets[pos].target = *it; completeDropTargets[pos].flags = 0; completeDropTargets[pos].info = IMAGE_DATA; @@ -2070,7 +2070,7 @@ void ContextMenu::ImageEdit(void) #endif std::vector itemlist=_desktop->selection->itemList(); - for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();++i){ Inkscape::XML::Node *ir = (*i)->getRepr(); const gchar *href = ir->attribute("xlink:href"); diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index 06f32ba5c..4d17a7ed5 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -1108,7 +1108,7 @@ void MeasureTool::showCanvasItems(bool to_guides, bool to_item, Inkscape::XML::N r->stop(); } std::vector intersection_times; - for (std::vector::const_iterator i=items.begin(); i!=items.end(); i++) { + for (std::vector::const_iterator i=items.begin(); i!=items.end(); ++i) { SPItem *item = *i; if (SP_IS_SHAPE(item)) { calculate_intersections(desktop, item, lineseg, SP_SHAPE(item)->getCurve(), intersection_times); @@ -1155,7 +1155,7 @@ void MeasureTool::showCanvasItems(bool to_guides, bool to_item, Inkscape::XML::N std::vector intersections; std::sort(intersection_times.begin(), intersection_times.end()); - for (std::vector::iterator iter_t = intersection_times.begin(); iter_t != intersection_times.end(); iter_t++) { + for (std::vector::iterator iter_t = intersection_times.begin(); iter_t != intersection_times.end(); ++iter_t) { if(show_in_between) { intersections.push_back(lineseg[0].pointAt(*iter_t)); } diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp index 794296329..56ba08789 100644 --- a/src/ui/tools/mesh-tool.cpp +++ b/src/ui/tools/mesh-tool.cpp @@ -471,7 +471,7 @@ bool MeshTool::root_handler(GdkEvent* event) { } else { // Create a new gradient with default coordinates. std::vector items=selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPItem *item = *i; SPGradientType new_type = SP_GRADIENT_TYPE_MESH; Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -956,7 +956,7 @@ static void sp_mesh_end_drag(MeshTool &rc) { sp_repr_css_set_property(css, "fill-opacity", "1.0"); std::vector items=selection->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ //FIXME: see above sp_repr_css_change_recursive((*i)->getRepr(), css, "style"); diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 6a6ca0b26..cceaca7cb 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -413,7 +413,7 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) { std::set shapes; std::vector items=sel->itemList(); - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();++i){ SPObject *obj = *i; if (SP_IS_ITEM(obj)) { -- cgit v1.2.3 From d0e818f6aab594de812e51550a8b81838f3f783d Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Mon, 7 Dec 2015 21:38:35 +0100 Subject: static code analysis (bzr r14511) --- src/knot-holder-entity.h | 5 ++++- src/sp-flowtext.cpp | 6 ++++-- src/sp-item-group.cpp | 14 +++++++------- 3 files changed, 15 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/knot-holder-entity.h b/src/knot-holder-entity.h index 43ab25e5c..63a068cab 100644 --- a/src/knot-holder-entity.h +++ b/src/knot-holder-entity.h @@ -44,7 +44,10 @@ public: item(NULL), desktop(NULL), parent_holder(NULL), - my_counter(0) + my_counter(0), + handler_id(0), + _click_handler_id(0), + _ungrab_handler_id(0) {} virtual ~KnotHolderEntity(); diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp index cac3cc61d..b87507e18 100644 --- a/src/sp-flowtext.cpp +++ b/src/sp-flowtext.cpp @@ -34,8 +34,10 @@ #include "display/drawing-text.h" -SPFlowtext::SPFlowtext() : SPItem() { - this->par_indent = 0; +SPFlowtext::SPFlowtext() : SPItem(), + par_indent(0), + _optimizeScaledText(false) +{ } SPFlowtext::~SPFlowtext() { diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 8cd0bf8d3..83d67cf5a 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -58,8 +58,11 @@ using Inkscape::DocumentUndo; static void sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup, bool write); -SPGroup::SPGroup() : SPLPEItem() { - this->_layer_mode = SPGroup::GROUP; +SPGroup::SPGroup() : SPLPEItem(), + _expanded(false), + _insertBottom(false), + _layer_mode(SPGroup::GROUP) +{ } SPGroup::~SPGroup() { @@ -90,10 +93,9 @@ void SPGroup::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) if ( item ) { /* TODO: this should be moved into SPItem somehow */ SPItemView *v; - Inkscape::DrawingItem *ac; for (v = this->display; v != NULL; v = v->next) { - ac = item->invoke_show (v->arenaitem->drawing(), v->key, v->flags); + Inkscape::DrawingItem *ac = item->invoke_show (v->arenaitem->drawing(), v->key, v->flags); if (ac) { v->arenaitem->appendChild(ac); @@ -105,12 +107,10 @@ void SPGroup::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) if ( item ) { /* TODO: this should be moved into SPItem somehow */ SPItemView *v; - Inkscape::DrawingItem *ac; - unsigned position = item->pos_in_parent(); for (v = this->display; v != NULL; v = v->next) { - ac = item->invoke_show (v->arenaitem->drawing(), v->key, v->flags); + Inkscape::DrawingItem *ac = item->invoke_show (v->arenaitem->drawing(), v->key, v->flags); if (ac) { v->arenaitem->prependChild(ac); -- cgit v1.2.3