Bugs and programming issues

Known bugs

Vertex enumeration bug

Calls to writeXMLFile(std::string) and printXMLFile() may cause the vertex labels to become unreliable. To avoid this issue always write and print meshes that contain all the vertices currently allocated in the program.

Memory leak

It is possible to generate a memory leak by assigning a vertex to a newly allocated vertex:

vertex x;
vertex x = y;

This situation often arises when there is a conditional to determine the assignment.

vertex x;
if (condition)
 vertex x = nextto y in z;
else vertex x = prevtto y in z;

Note that this can be easily avoided by declaring x as a null vertex:

vertex x = 0;

algorithms::DrawText() is broken

Due to a change in how Qt handles fonts, the DrawText function is currently broken. The preferred method for drawing text is now to use proxy->viewer.renderText(...). See the QGLWidget documentation (in the Qt documentation) for the use of renderText.

VC++.NET specific bugs

Compound query operations fail

Query operations that contained inside other query operations will return a null vertex. Example:

nextto nextto x in y in y;

VC++.NET specific issues

No DrawText

The function algorithms::DrawText(float x, float y, float z, std::string text) relies on the X11 fonts and so does not exist in Windows.

/MDd vs. /MD

The interpreter, vv library and compiled program library must all be either /MDd (for debug) or /MD (no debug). If the flags are mixed, for example the interpreter was compiled with /MD and the program /MDd, the program DLL will not load.

Language support miscellanea

There are a number of annoyances in VC++.NET that make it incompatible with standard C++ code. A good list of some particularly egregious issues can be found here.

G++ specific issues

Version 3.4

There are some compile and runtime issues that occur when using g++ version 3.4.2 and likely possibly also all versions starting with 3.4.0. Until vv is tested with this compiler, it is recommended to stay with version 3.3.x.


Return to the main page.
Colin Smith

Valid XHTML 1.1! Valid CSS!