diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2017-02-17 07:48:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-17 07:48:06 +0100 |
commit | 36986531afe3996de05640ff02088d18b24d409c (patch) | |
tree | 27bd4f630dda96d028aa0efd7752000844ac996b /scene | |
parent | 903a3aa5f0e128abb1fb752c10b343b34af8f799 (diff) | |
parent | b696beea65bbffd31edac169ccf9708f46ab9652 (diff) |
Merge pull request #7815 from hpvb/fix-7354
Correct hash behavior for floating point numbers
Diffstat (limited to 'scene')
-rw-r--r-- | scene/resources/packed_scene.cpp | 8 | ||||
-rw-r--r-- | scene/resources/packed_scene.h | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 17688c366a..99734fd656 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -361,7 +361,7 @@ static int _nm_get_string(const String& p_string, Map<StringName,int> &name_map) return idx; } -static int _vm_get_variant(const Variant& p_variant, HashMap<Variant,int,VariantHasher> &variant_map) { +static int _vm_get_variant(const Variant& p_variant, HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map) { if (variant_map.has(p_variant)) return variant_map[p_variant]; @@ -371,7 +371,7 @@ static int _vm_get_variant(const Variant& p_variant, HashMap<Variant,int,Variant return idx; } -Error SceneState::_parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map) { +Error SceneState::_parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map) { // this function handles all the work related to properly packing scenes, be it @@ -747,7 +747,7 @@ Error SceneState::_parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<S } -Error SceneState::_parse_connections(Node *p_owner,Node *p_node, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map) { +Error SceneState::_parse_connections(Node *p_owner,Node *p_node, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map) { if (p_node!=p_owner && p_node->get_owner() && p_node->get_owner()!=p_owner && !p_owner->is_editable_instance(p_node->get_owner())) return OK; @@ -952,7 +952,7 @@ Error SceneState::pack(Node *p_scene) { Node *scene = p_scene; Map<StringName,int> name_map; - HashMap<Variant,int,VariantHasher> variant_map; + HashMap<Variant,int,VariantHasher,VariantComparator> variant_map; Map<Node*,int> node_map; Map<Node*,int> nodepath_map; diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h index 381b356b1e..4a3841abe9 100644 --- a/scene/resources/packed_scene.h +++ b/scene/resources/packed_scene.h @@ -91,8 +91,8 @@ class SceneState : public Reference { Vector<ConnectionData> connections; - Error _parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map); - Error _parse_connections(Node *p_owner,Node *p_node, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map); + Error _parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map); + Error _parse_connections(Node *p_owner,Node *p_node, Map<StringName,int> &name_map,HashMap<Variant,int,VariantHasher,VariantComparator> &variant_map,Map<Node*,int> &node_map,Map<Node*,int> &nodepath_map); String path; |