diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-07-17 20:21:26 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-07-17 20:21:26 +0000 |
commit | c2fb791eb151e0d1bca32ae9b23cade2a21edfd9 (patch) | |
tree | b115eb23dae1753a22c8ef213b5825ddb1f02208 /navit/maptool | |
parent | 0674670e612c431b7fe735a0e96c45477b17513a (diff) | |
download | navit-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.c | 7 |
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); } |