godot/scene/resources
Hein-Pieter van Braam b696beea65 Correct hash behavior for floating point numbers
This fixes HashMap where a key or part of a key is a floating point
number. To fix this the following has been done:

* HashMap now takes an extra template argument Comparator. This class
gets used to compare keys. The default Comperator now works correctly
for common types and floating point numbets.

* Variant implements ::hash_compare() now. This function implements
nan-safe comparison for all types with components that contain floating
point numbers.

* Variant now has a VariantComparator which uses Variant::hash_compare()
safely compare floating point components of variant's types.

* The hash functions for floating point numbers will now normalize NaN
values so that all floating point numbers that are NaN hash to the same
value.

C++ module writers that want to use HashMap internally in their modules
can now also safeguard against this crash by defining their on
Comperator class that safely compares their types.

GDScript users, or writers of modules that don't use HashMap internally
in their modules don't need to do anything.

This fixes #7354 and fixes #6947.
2017-02-16 18:44:29 +01:00
..
default_theme WIP new AudioServer, with buses, effects, etc. 2017-01-21 19:01:00 -03:00
animation.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
animation.h Add clamp and wrap loop modes for animation tracks. 2017-01-09 00:41:16 -03:00
audio_stream_resampled.cpp Welcome in 2017, dear changelog reader! 2017-01-01 22:03:33 +01:00
audio_stream_resampled.h WIP new AudioServer, with buses, effects, etc. 2017-01-21 19:01:00 -03:00
audio_stream_sample.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
audio_stream_sample.h wav file importing! 2017-02-02 22:51:58 -03:00
baked_light.cpp Merge remote-tracking branch 'origin/gles3' into gles3-on-master 2017-01-02 21:52:26 +01:00
baked_light.h Merge remote-tracking branch 'origin/gles3' into gles3-on-master 2017-01-02 21:52:26 +01:00
bit_mask.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
bit_mask.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
bounds.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
bounds.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
box_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
box_shape.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
canvas.cpp Welcome in 2017, dear changelog reader! 2017-01-01 22:03:33 +01:00
canvas.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
capsule_shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
capsule_shape_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
capsule_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
capsule_shape.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
circle_shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
circle_shape_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
color_ramp.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
color_ramp.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
concave_polygon_shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
concave_polygon_shape_2d.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
concave_polygon_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
concave_polygon_shape.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
convex_polygon_shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
convex_polygon_shape_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
convex_polygon_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
convex_polygon_shape.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
curve.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
curve.h Type renames: 2017-01-11 00:52:51 -03:00
dynamic_font_stb.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
dynamic_font_stb.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
dynamic_font.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
dynamic_font.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
environment.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
environment.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
font.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
font.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
gibberish_stream.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
gibberish_stream.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
material.cpp a ton of bug fixes to the renderer 2017-02-16 08:55:43 -03:00
material.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
mesh_data_tool.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
mesh_data_tool.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
mesh_library.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
mesh_library.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
mesh.cpp Many fixes to make exported scenes work better, still buggy. 2017-02-15 08:34:02 -03:00
mesh.h Unify naming of blendshape / morphtarget into just "Blend Shape" 2017-01-12 08:34:00 -03:00
mikktspace.c Icons for many new types of nodes 2014-10-03 10:33:23 -03:00
mikktspace.h Icons for many new types of nodes 2014-10-03 10:33:23 -03:00
multimesh.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
multimesh.h Type renames: 2017-01-11 00:52:51 -03:00
packed_scene.cpp Correct hash behavior for floating point numbers 2017-02-16 18:44:29 +01:00
packed_scene.h Correct hash behavior for floating point numbers 2017-02-16 18:44:29 +01:00
plane_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
plane_shape.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
polygon_path_finder.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
polygon_path_finder.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
ray_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
ray_shape.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
rectangle_shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
rectangle_shape_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
room.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
room.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
scene_format_text.cpp Merge pull request #7002 from RandomShaper/vcs-friendliness 2017-01-25 14:52:40 -03:00
scene_format_text.h Style: Fix whole-line commented code 2017-01-14 14:52:23 +01:00
SCsub style: Various other PEP8 fixes in Python files 2016-11-01 00:35:16 +01:00
segment_shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
segment_shape_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
shader_graph.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
shader_graph.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
shader.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
shader.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
shape_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
shape_2d.h Type renames: 2017-01-11 00:52:51 -03:00
shape_line_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
shape_line_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
shape.cpp Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
shape.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
sky_box.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
sky_box.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
space_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
space_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sphere_shape.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
sphere_shape.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
stb_truetype.h remove trailing whitespace 2016-05-21 15:29:25 +02:00
style_box.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
style_box.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
surface_tool.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
surface_tool.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
texture.cpp a ton of bug fixes to the renderer 2017-02-16 08:55:43 -03:00
texture.h Many fixes to make exported scenes work better, still buggy. 2017-02-15 08:34:02 -03:00
theme.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
theme.h Memory pool vectors (DVector) have been enormously simplified in code, and renamed to PoolVector 2017-01-07 18:26:38 -03:00
tile_set.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
tile_set.h Merge pull request #6519 from RandomShaper/enhance-tileset 2017-01-14 16:52:16 -03:00
video_stream.cpp Welcome in 2017, dear changelog reader! 2017-01-01 22:03:33 +01:00
video_stream.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
world_2d.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
world_2d.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
world.cpp Rename the _MD macro to D_METHOD 2017-02-13 12:50:02 +01:00
world.h Oops! Audio engine has vanished :D 2017-01-15 16:07:51 -03:00