THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/02/2003 at 01:08, xxxxxxxx wrote:
Cinema 4D Version: 8.012
Platform: Windows ;
Language(s) : C++ ;
Hi once again,
Seems that as I'm creating lists of classes (representing sections of parsed info from file), there is a point when I get a fatal error (i.e. crash C4D), irrespective of where in the file. The error seems to be non-specific and happens "whenever", but always at the same point for each specific file. IOW, it's not happening under the same conditions per file, but is consistent per test file. No problems on smaller files, but occurs on the larger ones. Just seems to get to a point and dies with "The instruction at 0x.... referenced memory at 0x...." where the last is not a Null pointer - 0x00000000.
Is there a plugin memory limitation that I should be aware of. I am using gNew for allocating classes and GeAlloc() for allocating other memory storage (char buffers, LVector arrays, LReal arrays, and so forth) and, of course, I'm verifying each and every allocation, throwing an exception if NULL, and all memory is being freed on exit.
I'll keep examining my code, but more than several examinations have not yielded any culprits at this juncture.
On 28/02/2003 at 04:38, xxxxxxxx wrote:
How big is your data? Any memory limit would be close to the 4 GiB limit cause by 32 bit addressing, afaik, though I believe there are also 1 or 2 GiB limits in Windows and MacOS (don't remember the specifics). Please see if you can cause the same bug just by repeated allocations.
On 28/02/2003 at 22:44, xxxxxxxx wrote:
The data can get big (4, 6, 10, 20MB), but I have found the issue in a more esoteric area. Because of the nature of the file that I'm parsing, much of the file structure and contents are left to my investigations of the files themselves (IOW, there is no complete description of the filespec to be found online or in books, only smidgens here and there). So, even after checking hundreds of these files for the various fields and differences (from version to version in some cases), it is still easy to miss many of the nuances of the data without having intimate knowledge or filespec at my disposal.
What I found is that I assumed (from viewing many files, by the way) that certain groups of deltas (for morphs) would always be indexed from 0 - N. Hah! Not so. They can contain partial sets from a full set of points to be modified, meaning that the indices can be a set of discontinuous sets. Not good for indexing into an array, eh? Thus explaining the references to memory not owned by the pointer. Wavefront .obj's can be a pain, but they're nothing compared to Poser file (eh) flexibility (?). I'd pay for the complete filespec if I thought that it'd be possible.
Thanks for your concern, nonetheless, Mikael,