can you provide us with a copy of this file so that we can try to debug it?
On Fri, Mar 26, 2010 at 3:54 PM, Toussis Manolis <mano...@koppermind.homelinux.org> wrote: > Ok , I am working on a project of mine, and I used some of the info on the > libredwg source code to parse dwg 2004 files. > > I am right now on the object reading area. > The flow goes fine, except I came up with a problem in reading INSERT object: > > Here what your code says: > > > DWG_ENTITY(INSERT); > > FIELD_3BD(ins_pt); > ......................... > ........................... > FIELD(rotation_ang, BD); > FIELD_3DPOINT(extrusion); > FIELD(has_attribs, B); > > SINCE(R_2004) > { > if (FIELD_VALUE(has_attribs)) > { > FIELD(owned_obj_count, BL); > } > } > > COMMON_ENTITY_HANDLE_DATA; > > FIELD_HANDLE(block_header, 5); > > //There is a typo in the spec. it says "R13-R200:". > //I guess it means "R13-R2000:" (just like in MINSERT) > VERSIONS(R_13,R_2000) > { > if(FIELD_VALUE(has_attribs)) > { > FIELD_HANDLE(first_attrib, 4); > FIELD_HANDLE(last_attrib, 4); > } > } > > //Spec typo? Spec says "2004:" but I think it should be "2004+:" > // just like field owned_obj_count (AND just like in MINSERT) > SINCE(R_2004) > { > if (FIELD_VALUE(has_attribs)) > { > HANDLE_VECTOR(attrib_handles, owned_obj_count, 4); > } > } > > if (FIELD_VALUE(has_attribs)) > { > FIELD_HANDLE(seqend, 3); > } > > DWG_ENTITY_END > > > Is the above correct or maybe somethin am I missing? > I parse the objects of type INSERT with this and occasionally I get a huge > bitLong number of owned_obj_count (the file is 2004 AC1018) > > > 1. There is no way that i have wrong data of the objects because I get a > correct calculated crc of the data, with the one stored in the file. > 2. autocad reads the file without errors > 3. the above "occasionally" means that many insert objects are parsed fine, > but some fail with huge owned_obj_count number > > > Any thoughts? > > Thank you in advance > > > >