Bug 1803, Upcoming breaking changes for 4.10.0-beta1

Frank Warmerdam warmerdam at POBOX.COM
Wed Aug 16 20:47:48 EDT 2006

Tamas Szekeres wrote:
> Hi All,
> According to the
> http://mapserver.gis.umn.edu/bugs/show_bug.cgi?id=1803
> and the agreement on the recent IRC meeting the following object
> members will be marked as immutable on the SWIG interface:
>  layerObj.metadata (hashTableObj)
>  classObj.label  (labelObj)
>  classObj.metadata  (hashTableObj)
>  classObj.layer  (layerObj)        already marked as immutable in 
> mapscript.txt
>  fontSetObj.fonts  (hashTableObj)
>  imageObj.format  (outputFormatObj)
>  labelPathObj.path (lineObj)        missing documentation about
> labelPathObj in mapscript.txt should we expose at all?
>  legendObj.label  (labelObj)
>  legendObj.map  (mapObj)
>  mapObj.symbolset (symbolSetObj)
>  mapObj.fontset  (fontSetObj)
>  mapObj.labelcache  (labelCacheObj)
>  mapObj.reference  (referenceMapObj)
>  mapObj.scalebar  (scalebarObj)
>  mapObj.legend  (legendObj)
>  mapObj.querymap (queryMapObj)
>  mapObj.web  (webObj)
>  mapObj.configoptions  (hashTableObj)
>  webObj.map  (mapObj)
>  webObj.metadata  (hashTableObj)
> Generally there is no need to create these objects externally since
> they have been created internally.
> External creation of these members are unsafe, instead folks should
> work with the already created objects by reading the members mentioned
> above.
> If I get no objections till Aug 17 10:00 (Central European Time) i
> will change map.h and mapscript.txt accordingly so as to get it for
> 4.10.0-beta1.


Note, I thought we were just voting on making the metadata value on
the layerObj immutable, not all of these things.  The metadata fields
on the various objects is an actual hashTableObj (as opposed to a pointer
to a hashTableObj) so the default copy operator's shallow copy doesn't
do what we want.  I think items like "layer" on classObj, which is a
pointer, is a different case.

I would say at the least make all the hashTableObj's immutable to
mapscript.  Consider doing this for other embedded structures like
mapObj.symbolset.  But hold off on changing the fields that are
pointers (like classObj.layer) till the matter is discussed further.

Best regards,
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | President OSGF, http://osgeo.org

More information about the mapserver-dev mailing list