summaryrefslogtreecommitdiff
path: root/navit/maptool
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-07-17 20:21:26 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-07-17 20:21:26 +0000
commitc2fb791eb151e0d1bca32ae9b23cade2a21edfd9 (patch)
treeb115eb23dae1753a22c8ef213b5825ddb1f02208 /navit/maptool
parent0674670e612c431b7fe735a0e96c45477b17513a (diff)
downloadnavit-c2fb791eb151e0d1bca32ae9b23cade2a21edfd9.tar.gz
Fix:maptool:Correctly handle missing nodes if node_hash is used.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5819 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/maptool')
-rw-r--r--navit/maptool/osm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/navit/maptool/osm.c b/navit/maptool/osm.c
index 6932eb57e..9296b2a3c 100644
--- a/navit/maptool/osm.c
+++ b/navit/maptool/osm.c
@@ -1419,7 +1419,12 @@ node_item_get(osmid id)
struct node_item *node_buffer_base=(struct node_item *)(node_buffer.base);
int result_index;
if (node_hash) {
- result_index=(int)(long)(g_hash_table_lookup(node_hash, (gpointer)(long)(id)));
+ // Use g_hash_table_lookup_extended instead of g_hash_table_lookup
+ // to distinguish a key with a value 0 from a missing key.
+ if (!g_hash_table_lookup_extended (node_hash, (gpointer)(long)(id), NULL,
+ (gpointer)&result_index)) {
+ result_index=-1;
+ }
} else {
result_index=node_item_find_index_in_ordered_list(id);
}