[Qgis-developer] QGIS crash on Mac OS X -- 0.8 release branch
Gary Sherman
sherman at mrcc.com
Thu May 10 21:31:06 EDT 2007
On May 10, 2007, at 9:14 AM, Tom Elwertowski wrote:
> Gary Sherman wrote:
>> This problem turns out to happen here in providers/ogr/
>> qgsogrprovider.cpp
>> :
>> void QgsOgrProvider::loadFields()
>> {
>> //the attribute fields need to be read again when the encoding
>> changes
>> attributeFields.clear();
>> ...
>> }
>> When attributeFields.clear() is called, the crash occurs. If I
>> comment it out, the layer will load fine, with the untidy side
>> effect of having two sets of every field in the attribute table.
>> The attributeFields member is a std::vector. I thought maybe
>> something was amiss in my setup, so I wrote a small test program
>> to create a vector, populate it, and clear it. It works fine.
>> Any mac experts have any ideas as to why this is happening? I'm
>> using the frameworks from kyngchaos.com.
>
> Can you provide an example file or tell me what encoding to use? It
> looks like the problem might be caused by specific encodings or
> even specific files.
By default my OGR open dialog was set to UTF8. Trying other encodings
didn't make a difference.
Interestingly enough, Tim S. tried my binaries/libs on his box when
this problem first popped up and he experienced the crash as well.
I'm not certain how this relates to encoding. Is there a default
somewhere for the system that is set wrong?
You can download a data set that I'm using from: http://gisalaska.com/
cities.zip
But I have this problem with every shapefile.
Thanks for your help!!
-gary
>
> QgsOgrProvider::loadFields() is the only place attributeFields.clear
> () is called. I tried calling loadFields() twice so a simple clear
> () isn't the problem. I can also load a Swedish file which causes
> loadFields() to be called a second time with a different encoding.
> It's the only non-Mac-default encoding example I have.
>
> My hypothesis is that loading fields first using the wrong encoding
> may be bad for some but not all encodings. If this is the case, we
> should always set the encoding first. At present, the encoding is
> known when the QgsOgrProvider constructor is called but the
> constructor calls loadFields() before the calling code calls
> setEncoding().
>
> Tom
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.qgis.org
> http://lists.qgis.org/cgi-bin/mailman/listinfo/qgis-developer
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Gary Sherman
Micro Resources: http://mrcc.com
*Geospatial Hosting
*Web Site Hosting
"We work virtually everywhere"
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
More information about the Qgis-developer
mailing list