[geos-commits] r4186 - trunk/capi
Sandro Santilli
strk at keybit.net
Tue Apr 19 09:27:01 PDT 2016
Author: strk
Date: 2016-04-19 09:27:01 -0700 (Tue, 19 Apr 2016)
New Revision: 4186
Modified:
trunk/capi/geos_ts_c.cpp
Log:
Move CustomItemDistance defn some contexts higher
Modified: trunk/capi/geos_ts_c.cpp
===================================================================
--- trunk/capi/geos_ts_c.cpp 2016-04-19 16:26:54 UTC (rev 4185)
+++ trunk/capi/geos_ts_c.cpp 2016-04-19 16:27:01 UTC (rev 4186)
@@ -5956,29 +5956,30 @@
{
GEOSContextHandleInternal_t *handle = 0;
- try
- {
- if (distancefn) {
- struct CustomItemDistance : public ItemDistance {
- CustomItemDistance(GEOSDistanceCallback p_distancefn, void* p_userdata)
- : m_distancefn(p_distancefn), m_userdata(p_userdata) {}
- GEOSDistanceCallback m_distancefn;
- void* m_userdata;
+ struct CustomItemDistance : public ItemDistance {
+ CustomItemDistance(GEOSDistanceCallback p_distancefn, void* p_userdata)
+ : m_distancefn(p_distancefn), m_userdata(p_userdata) {}
- double distance(const ItemBoundable* item1, const ItemBoundable* item2) {
- const void* a = item1->getItem();
- const void* b = item2->getItem();
- double d;
+ GEOSDistanceCallback m_distancefn;
+ void* m_userdata;
- if (!m_distancefn(a, b, &d, m_userdata)) {
- throw std::runtime_error(std::string("Failed to compute distance."));
- }
+ double distance(const ItemBoundable* item1, const ItemBoundable* item2) {
+ const void* a = item1->getItem();
+ const void* b = item2->getItem();
+ double d;
- return d;
- }
- };
+ if (!m_distancefn(a, b, &d, m_userdata)) {
+ throw std::runtime_error(std::string("Failed to compute distance."));
+ }
+ return d;
+ }
+ };
+
+ try
+ {
+ if (distancefn) {
CustomItemDistance itemDistance(distancefn, userdata);
return tree->nearestNeighbour(itemEnvelope->getEnvelopeInternal(), item, &itemDistance);
} else {
More information about the geos-commits
mailing list