diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2010-01-20 19:31:57 +0000 |
|---|---|---|
| committer | Krzysztof Kosiński <tweenk.pl@gmail.com> | 2010-01-20 19:31:57 +0000 |
| commit | 906f78949458732f138e4e2b79843c75e9d52f87 (patch) | |
| tree | 2643ad24eb96a1999f29c7eb606992b4ffcc93eb /src | |
| parent | Make Ctrl+Alt+click delete nodes. (diff) | |
| download | inkscape-906f78949458732f138e4e2b79843c75e9d52f87.tar.gz inkscape-906f78949458732f138e4e2b79843c75e9d52f87.zip | |
Go back to using TR1 unordered containers to fix warnings. Add configure
code to detect the broken header and display Wiki page URL.
(bzr r9006)
Diffstat (limited to 'src')
| -rw-r--r-- | src/libnrtype/FontFactory.cpp | 14 | ||||
| -rw-r--r-- | src/libnrtype/FontInstance.cpp | 8 | ||||
| -rw-r--r-- | src/libnrtype/font-instance.h | 4 | ||||
| -rw-r--r-- | src/ui/tool/control-point-selection.h | 22 | ||||
| -rw-r--r-- | src/ui/tool/multi-path-manipulator.cpp | 18 | ||||
| -rw-r--r-- | src/ui/tool/node.cpp | 2 | ||||
| -rw-r--r-- | src/util/hash.h | 6 |
7 files changed, 24 insertions, 50 deletions
diff --git a/src/libnrtype/FontFactory.cpp b/src/libnrtype/FontFactory.cpp index 761da7756..09d9e2c4f 100644 --- a/src/libnrtype/FontFactory.cpp +++ b/src/libnrtype/FontFactory.cpp @@ -26,11 +26,9 @@ /* Freetype2 */ # include <pango/pangoft2.h> -//#include <tr1/unordered_map> -#include <ext/hash_map> +#include <tr1/unordered_map> - -typedef __gnu_cxx::hash_map<PangoFontDescription*, font_instance*, font_descr_hash, font_descr_equal> FaceMapType; +typedef std::tr1::unordered_map<PangoFontDescription*, font_instance*, font_descr_hash, font_descr_equal> FaceMapType; // need to avoid using the size field size_t font_descr_hash::operator()( PangoFontDescription *const &x) const { @@ -826,9 +824,11 @@ font_instance *font_factory::Face(PangoFontDescription *descr, bool canFail) if ( nFace ) { // duplicate FcPattern, the hard way res = new font_instance(); - // store the descr of the font we asked for, since this is the key where we intend to put the font_instance at - // in the hash_map. the descr of the returned pangofont may differ from what was asked, so we don't know (at this - // point) whether loadedFaces[that_descr] is free or not (and overwriting an entry will bring deallocation problems) + // store the descr of the font we asked for, since this is the key where we intend + // to put the font_instance at in the unordered_map. the descr of the returned + // pangofont may differ from what was asked, so we don't know (at this + // point) whether loadedFaces[that_descr] is free or not (and overwriting + // an entry will bring deallocation problems) res->descr = pango_font_description_copy(descr); res->daddy = this; res->InstallFace(nFace); diff --git a/src/libnrtype/FontInstance.cpp b/src/libnrtype/FontInstance.cpp index 8b8eb8bbe..628e3cba0 100644 --- a/src/libnrtype/FontInstance.cpp +++ b/src/libnrtype/FontInstance.cpp @@ -29,12 +29,9 @@ # include FT_TRUETYPE_TABLES_H # include <pango/pangoft2.h> -//#include <tr1/unordered_map> -#include <ext/hash_map> +#include <tr1/unordered_map> -// the various raster_font in use at a given time are held in a hash_map whose indices are the -// styles, hence the 2 following 'classes' struct font_style_hash : public std::unary_function<font_style, size_t> { size_t operator()(font_style const &x) const; }; @@ -43,8 +40,7 @@ struct font_style_equal : public std::binary_function<font_style, font_style, bo bool operator()(font_style const &a, font_style const &b) const; }; - -typedef __gnu_cxx::hash_map<font_style, raster_font*, font_style_hash, font_style_equal> StyleMap; +typedef std::tr1::unordered_map<font_style, raster_font*, font_style_hash, font_style_equal> StyleMap; diff --git a/src/libnrtype/font-instance.h b/src/libnrtype/font-instance.h index 521c9a424..d52bd723f 100644 --- a/src/libnrtype/font-instance.h +++ b/src/libnrtype/font-instance.h @@ -25,7 +25,7 @@ public: // depending on the rendering backend, different temporary data // that's the font's fingerprint; this particular PangoFontDescription gives the entry at which this font_instance - // resides in the font_factory loadedFaces hash_map + // resides in the font_factory loadedFaces unordered_map PangoFontDescription* descr; // refcount int refCount; @@ -86,7 +86,7 @@ private: void FreeTheFace(); // hashmap to get the raster_font for a given style - void* loadedPtr; // Pointer to a hash_map. Moved into .cpp to not expose use of __gnu_cxx extension. + void* loadedPtr; #ifdef USE_PANGO_WIN32 HFONT theFace; diff --git a/src/ui/tool/control-point-selection.h b/src/ui/tool/control-point-selection.h index dce685575..54d724f00 100644 --- a/src/ui/tool/control-point-selection.h +++ b/src/ui/tool/control-point-selection.h @@ -13,11 +13,8 @@ #define SEEN_UI_TOOL_NODE_SELECTION_H #include <memory> -// those are broken beyond hope on OSX. -//#include <tr1/unordered_map> -//#include <tr1/unordered_set> -#include <ext/hash_map> -#include <ext/hash_set> +#include <tr1/unordered_map> +#include <tr1/unordered_set> #include <boost/shared_ptr.hpp> #include <boost/weak_ptr.hpp> #include <boost/optional.hpp> @@ -30,8 +27,6 @@ #include "ui/tool/commit-events.h" #include "ui/tool/manipulator.h" -namespace std { using namespace __gnu_cxx; } - class SPDesktop; namespace Inkscape { @@ -41,15 +36,6 @@ class SelectableControlPoint; } } -namespace __gnu_cxx { -template<> -struct hash<Inkscape::UI::SelectableControlPoint*> { - size_t operator()(Inkscape::UI::SelectableControlPoint *p) const { - return reinterpret_cast<size_t>(p); - } -}; -} // namespace __gnu_cxx - namespace Inkscape { namespace UI { @@ -58,9 +44,9 @@ public: ControlPointSelection(SPDesktop *d, SPCanvasGroup *th_group); ~ControlPointSelection(); typedef std::list<sigc::connection> connlist_type; - typedef std::hash_map< SelectableControlPoint *, + typedef std::tr1::unordered_map< SelectableControlPoint *, boost::shared_ptr<connlist_type> > map_type; - typedef std::hash_set< SelectableControlPoint * > set_type; + typedef std::tr1::unordered_set< SelectableControlPoint * > set_type; typedef set_type Set; // convenience alias typedef map_type::iterator iterator; diff --git a/src/ui/tool/multi-path-manipulator.cpp b/src/ui/tool/multi-path-manipulator.cpp index c05b71cd4..d1138abd5 100644 --- a/src/ui/tool/multi-path-manipulator.cpp +++ b/src/ui/tool/multi-path-manipulator.cpp @@ -1,5 +1,5 @@ /** @file - * Path manipulator - implementation + * Multi path manipulator - implementation */ /* Authors: * Krzysztof Kosiński <tweenk.pl@gmail.com> @@ -8,8 +8,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -//#include <tr1/unordered_set> -#include <ext/hash_set> +#include <tr1/unordered_set> #include <boost/shared_ptr.hpp> #include <glib.h> #include <glibmm/i18n.h> @@ -26,16 +25,7 @@ #include "ui/tool/multi-path-manipulator.h" #include "ui/tool/path-manipulator.h" -namespace std { using namespace __gnu_cxx; } - -namespace __gnu_cxx { -template<> -struct hash<Inkscape::UI::NodeList::iterator> { - size_t operator()(Inkscape::UI::NodeList::iterator const &n) const { - return reinterpret_cast<size_t>(n.ptr()); - } -}; -} +namespace std { using namespace tr1; } namespace Inkscape { namespace UI { @@ -43,7 +33,7 @@ namespace UI { namespace { typedef std::pair<NodeList::iterator, NodeList::iterator> IterPair; typedef std::vector<IterPair> IterPairList; -typedef std::hash_set<NodeList::iterator> IterSet; +typedef std::unordered_set<NodeList::iterator> IterSet; typedef std::multimap<double, IterPair> DistanceMap; typedef std::pair<double, IterPair> DistanceMapItem; diff --git a/src/ui/tool/node.cpp b/src/ui/tool/node.cpp index c1dfcdeaa..ef98e7c84 100644 --- a/src/ui/tool/node.cpp +++ b/src/ui/tool/node.cpp @@ -955,7 +955,7 @@ Glib::ustring Node::_getTip(unsigned state) if (state_held_control(state)) { if (state_held_alt(state)) { - return C_("Path node tip", "<b>Ctrl+Alt:</b> move along handle lines"); + return C_("Path node tip", "<b>Ctrl+Alt:</b> move along handle lines, click to delete node"); } return C_("Path node tip", "<b>Ctrl:</b> move along axes, click to change node type"); diff --git a/src/util/hash.h b/src/util/hash.h index 33af9222d..d5abeff5a 100644 --- a/src/util/hash.h +++ b/src/util/hash.h @@ -13,7 +13,8 @@ #include <boost/shared_ptr.hpp> -namespace __gnu_cxx { +namespace std { +namespace tr1 { /** Hash function for Boost shared pointers */ template <typename T> @@ -23,7 +24,8 @@ struct hash< boost::shared_ptr<T> > : public std::unary_function<boost::shared_p } }; -} // namespace __gnu_cxx +} // namespace tr1 +} // namespace std #endif |
