1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
JUCE/modules/juce_graphics/geometry
reuk ce0fe3dc1e
EdgeTable: Keep better track of buffer memory ranges
Occasionally, on Linux, Address Sanitizer can complain about a memory
region overlap in the arguments to memcpy, originating in
EdgeTable::intersectWithEdgeTableLine. I haven't been able to reproduce
this personally.

The final memcpy call in this function requires there to be
"srcNum1 * 2" valid entries after the current "src1" ptr, and none of
those entries may overlap with the area starting at "temp".

On inspection, I think that the memory region being read is too large.
At the point of the call, src1 will point to a LineItem::level, not
LineItem::x, so there will actually be (srcNum1 * 2 - 1) valid items
following it.

All this pointer arithmetic is very difficult to understand. In an
effort to make this function slightly more understandable, I've switched
to using Spans to delineate lines of the table, which makes it easier to
keep track of the size of each line.
2024-05-20 12:49:55 +01:00
..
juce_AffineTransform.cpp AffineTransform: Add basic test for fromTargetPoints 2024-05-08 17:53:52 +01:00
juce_AffineTransform.h Update licensing information 2024-04-16 11:39:35 +01:00
juce_BorderSize.h Update licensing information 2024-04-16 11:39:35 +01:00
juce_EdgeTable.cpp EdgeTable: Keep better track of buffer memory ranges 2024-05-20 12:49:55 +01:00
juce_EdgeTable.h EdgeTable: Keep better track of buffer memory ranges 2024-05-20 12:49:55 +01:00
juce_Line.h Line: Avoid data loss warning in Line::findNearestPointTo 2024-05-08 17:53:52 +01:00
juce_Parallelogram.h Parallelogram: Fix implementations of isEmpty and operator-= 2024-05-08 17:53:51 +01:00
juce_Parallelogram_test.cpp Parallelogram: Fix implementations of isEmpty and operator-= 2024-05-08 17:53:51 +01:00
juce_Path.cpp Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
juce_Path.h Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
juce_PathIterator.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_PathIterator.h Update licensing information 2024-04-16 11:39:35 +01:00
juce_PathStrokeType.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_PathStrokeType.h Update licensing information 2024-04-16 11:39:35 +01:00
juce_Point.h Point: Disable rotatedAroundOrigin for non-floating-point types 2024-05-08 17:53:52 +01:00
juce_Rectangle.h Update licensing information 2024-04-16 11:39:35 +01:00
juce_Rectangle_test.cpp Update licensing information 2024-04-16 11:39:35 +01:00
juce_RectangleList.h Update licensing information 2024-04-16 11:39:35 +01:00