[INTERPRETER]

* BUG: Fix a structure declaration for ARM architecture.

[GB.CLIPPER]
* BUG: Fix the signature of some methods.


git-svn-id: svn://localhost/gambas/trunk@5900 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
Benoît Minisini 2013-10-19 02:53:17 +00:00
parent 51a949eade
commit c994980764
2 changed files with 10 additions and 10 deletions

View file

@ -28,6 +28,8 @@
#include "gbx_string.h" #include "gbx_string.h"
#include "gbx_object.h" #include "gbx_object.h"
// On ARM 32 bits, sizeof(VARIANT) = 12, so it must be packed like GB_VARIANT
typedef typedef
struct struct
{ {
@ -48,6 +50,7 @@ typedef
} }
value; value;
} }
PACKED
VARIANT; VARIANT;
#define VARIANT_copy_value(_dst, _src) (_dst)->value.data = (_src)->value.data #define VARIANT_copy_value(_dst, _src) (_dst)->value.data = (_src)->value.data

View file

@ -385,7 +385,8 @@ static void execute(ClipType action, PolyFillType fill, void *subject, void *cli
return; return;
c.AddPolygons(psubject, ptSubject); c.AddPolygons(psubject, ptSubject);
c.AddPolygons(pclip, ptClip); if (clip)
c.AddPolygons(pclip, ptClip);
c.Execute(action, result, fill, fill); c.Execute(action, result, fill, fill);
@ -439,7 +440,7 @@ GB_DESC PolygonDesc[] =
GB_METHOD("Add", NULL, Polygon_Add, "(X)f(Y)f"), GB_METHOD("Add", NULL, Polygon_Add, "(X)f(Y)f"),
GB_METHOD("AddPoint", NULL, Polygon_AddPoint, "(Point)Point;"), GB_METHOD("AddPoint", NULL, Polygon_AddPoint, "(Point)Point;"),
GB_METHOD("Remove", NULL, Polygon_Remove, "(Index)i[Count)i]"), GB_METHOD("Remove", NULL, Polygon_Remove, "(Index)i[(Count)i]"),
GB_INTERFACE("_convert", &_convert_polygon), GB_INTERFACE("_convert", &_convert_polygon),
@ -450,10 +451,6 @@ GB_DESC ClipperDesc[] =
{ {
GB_DECLARE_VIRTUAL("Clipper"), GB_DECLARE_VIRTUAL("Clipper"),
//void OffsetPolygons(const Polygons &in_polys, Polygons &out_polys, double delta, JoinType jointype = jtSquare, double limit = 0.0, bool autoFix = true);
//void SimplifyPolygons(const Polygons &in_polys, Polygons &out_polys, PolyFillType fillType = pftEvenOdd);
//void CleanPolygons(Polygons &in_polys, Polygon &out_polys, double distance = 1.415);
GB_CONSTANT("JoinMiter", "i", jtMiter), GB_CONSTANT("JoinMiter", "i", jtMiter),
GB_CONSTANT("JoinSquare", "i", jtSquare), GB_CONSTANT("JoinSquare", "i", jtSquare),
GB_CONSTANT("JoinRound", "i", jtRound), GB_CONSTANT("JoinRound", "i", jtRound),
@ -468,10 +465,10 @@ GB_DESC ClipperDesc[] =
GB_STATIC_METHOD("Simplify", "Polygon[]", Clipper_Simplify, "(Polygons)Polygon[];[(Fill)i]"), GB_STATIC_METHOD("Simplify", "Polygon[]", Clipper_Simplify, "(Polygons)Polygon[];[(Fill)i]"),
GB_STATIC_METHOD("Clean", "Polygon[]", Clipper_Clean, "(Polygons)Polygon[];[(Distance)f]"), GB_STATIC_METHOD("Clean", "Polygon[]", Clipper_Clean, "(Polygons)Polygon[];[(Distance)f]"),
GB_STATIC_METHOD("Union", "Polygon[]", Clipper_Union, "(Polygons)Polygon[];[(Clip)Polygon[];[(Fill)i]"), GB_STATIC_METHOD("Union", "Polygon[]", Clipper_Union, "(Polygons)Polygon[];[(Clip)Polygon[];(Fill)i]"),
GB_STATIC_METHOD("Intersection", "Polygon[]", Clipper_Intersection, "(Polygons)Polygon[];[(Clip)Polygon[];[(Fill)i]"), GB_STATIC_METHOD("Intersection", "Polygon[]", Clipper_Intersection, "(Polygons)Polygon[];[(Clip)Polygon[];(Fill)i]"),
GB_STATIC_METHOD("Difference", "Polygon[]", Clipper_Difference, "(Polygons)Polygon[];[(Clip)Polygon[];[(Fill)i]"), GB_STATIC_METHOD("Difference", "Polygon[]", Clipper_Difference, "(Polygons)Polygon[];[(Clip)Polygon[];(Fill)i]"),
GB_STATIC_METHOD("ExclusiveOr", "Polygon[]", Clipper_ExclusiveOr, "(Polygons)Polygon[];[(Clip)Polygon[];[(Fill)i]"), GB_STATIC_METHOD("ExclusiveOr", "Polygon[]", Clipper_ExclusiveOr, "(Polygons)Polygon[];[(Clip)Polygon[];(Fill)i]"),
GB_END_DECLARE GB_END_DECLARE
}; };