]> git.tokkee.org Git - inkscape.git/commitdiff

Code

Clean up knutux's fix for the snapper crash.
authorcth103 <cth103@users.sourceforge.net>
Thu, 4 May 2006 14:14:43 +0000 (14:14 +0000)
committercth103 <cth103@users.sourceforge.net>
Thu, 4 May 2006 14:14:43 +0000 (14:14 +0000)
src/grid-snapper.h
src/guide-snapper.h
src/line-snapper.h
src/object-snapper.h
src/snap.cpp
src/snap.h
src/sp-namedview.cpp

index 73a1f25008c4c5ff730f9222dcda1bfac62b1aa4..247823ac7738cb4cb022a86ffc0b08f13a4a4f68 100644 (file)
@@ -24,7 +24,6 @@ namespace Inkscape
 class GridSnapper : public LineSnapper
 {
 public:
-    GridSnapper() {}
     GridSnapper(SPNamedView const *nv, NR::Coord const d);
 
 private:    
index 654149f5c5fa90fbaaee64bc70803addd1896b11..f4c7b2de711de71723b4749fb4585d2beeb234a7 100644 (file)
@@ -28,7 +28,6 @@ namespace Inkscape
 class GuideSnapper : public LineSnapper
 {
 public:
-    GuideSnapper() {}
     GuideSnapper(SPNamedView const *nv, NR::Coord const d);
 
 private:
index 72afab76d0c4e3a3f091cbd4046b1c072621e2ec..581466d330533b4ebbdd005c4d31440525253b9e 100644 (file)
@@ -19,14 +19,13 @@ namespace Inkscape
 class LineSnapper : public Snapper
 {
 public:
-  LineSnapper() {}
   LineSnapper(SPNamedView const *nv, NR::Coord const d);
 
 protected:
   typedef std::list<std::pair<NR::Dim2, NR::Coord> > LineList;
 
 private:
-  virtual SnappedPoint _doFreeSnap(NR::Point const &p,
+  SnappedPoint _doFreeSnap(NR::Point const &p,
                           std::list<SPItem const *> const &it) const;
   
   SnappedPoint _doConstrainedSnap(NR::Point const &p,
index 98d457088856bb482adec17ffb4ae3628381aedc..189e96e3e249c925303a8c55edd967a4605b70f6 100644 (file)
@@ -25,7 +25,6 @@ namespace Inkscape
 class ObjectSnapper : public Snapper
 {
 public:
-  ObjectSnapper() {}
   ObjectSnapper(SPNamedView const *nv, NR::Coord const d);
 
   void setSnapToNodes(bool s) {
@@ -45,7 +44,7 @@ public:
   }
   
 private:
-  virtual SnappedPoint _doFreeSnap(NR::Point const &p,
+  SnappedPoint _doFreeSnap(NR::Point const &p,
                           std::list<SPItem const *> const &it) const;
 
   SnappedPoint _doConstrainedSnap(NR::Point const &p,
index 940d4c77208c6f17f898423baf692080a67892d0..452a1e496bb7583396480dfbbbf6b6b2b0a9f42e 100644 (file)
 #include <libnr/nr-scale-ops.h>
 #include <libnr/nr-values.h>
 
+SnapManager::SnapManager(SPNamedView* v) : grid(v, 0), guide(v, 0), object(v, 0)
+{
+
+}
+
 SnapManager::SnapperList SnapManager::getSnappers() const
 {
     SnapManager::SnapperList s;
index 49c4987898dc8ee454404a4c40dfc7de718faf14..c77e8df41aeb5441af1ef84da91feb0d48fc20ef 100644 (file)
@@ -29,6 +29,8 @@ class SPNamedView;
 class SnapManager
 {
 public:
+    SnapManager(SPNamedView* v);
+    
     bool willSnapSomething() const;
 
     Inkscape::SnappedPoint freeSnap(Inkscape::Snapper::PointType t,
index 4be180237da119729dc7461c799463b5bcbacadd..129ef2c8c9a0128faa73bb6487e14fbd725f031a 100644 (file)
@@ -104,9 +104,6 @@ static void sp_namedview_class_init(SPNamedViewClass * klass)
 
 static void sp_namedview_init(SPNamedView *nv)
 {
-    // explicitly call a contructor
-    new(nv) SPNamedView();
-
     nv->editable = TRUE;
     nv->showgrid = FALSE;
     nv->showguides = TRUE;
@@ -119,6 +116,8 @@ static void sp_namedview_init(SPNamedView *nv)
     nv->default_layer_id = 0;
 
     nv->connector_spacing = defaultConnSpacing;
+
+    new (&nv->snap_manager) SnapManager(nv);
 }
 
 static void sp_namedview_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
@@ -206,7 +205,7 @@ static void sp_namedview_release(SPObject *object)
         ((SPObjectClass *) parent_class)->release(object);
     }
 
-    namedview->~SPNamedView();
+    namedview->snap_manager.~SnapManager();
 }
 
 static void sp_namedview_set(SPObject *object, unsigned int key, const gchar *value)