Opened 18 years ago
Last modified 14 years ago
#1794 closed defect
mapObj.nextLabel() can be used only once — at Version 5
Reported by: | Owned by: | dmorissette | |
---|---|---|---|
Priority: | high | Milestone: | 6.0 release |
Component: | Documentation - MapServer | Version: | 4.8 |
Severity: | normal | Keywords: | |
Cc: | dmorissette, jmckenna |
Description (last modified by )
As mapObj.nextLabel() contains a static variable in its body (see below), it cannot be invoked several times to retrieve labelCacheMemberObj objects of a map. And due to the same reason, it cannot be used in multithreaded environment.
Is it possible to implement something like labelCacheObj.getLabel(index) to access labelCacheMemberObj objects through mapObj.labelcache or modify nextLabel() to allow at least to reset an index in it?
By the way, there is already labelCacheObj.labels holding all labelCacheMemberObj objects. It could be nice to have a couple of set/get for it.
// nextLabel() in question static labelCacheMemberObj *nextLabel(mapObj *self) { static int i = 0; if (i < self->labelcache.numlabels) return &(self->labelcache.labels[i++]); else return NULL; }
Change History (6)
by , 18 years ago
Attachment: | map.i.diff added |
---|
comment:1 by , 18 years ago
Status: | new → assigned |
---|
comment:2 by , 18 years ago
Cc: | added |
---|
This is a reasonable solution. I'll patch Swig/MapScript and have CC'd Assefa for PHP... Steve
comment:4 by , 18 years ago
Component: | MapScript-SWIG → MapScript-PHP |
---|---|
Owner: | changed from | to
Status: | assigned → new |
This has been committed to CVS head so SWIG/MapScript is ok now. Re-assigning to PHP/MapScript component. Steve
comment:5 by , 17 years ago
Description: | modified (diff) |
---|---|
Milestone: | → 5.0 release |
Owner: | changed from | to
I'll take this bug. The issue of nextLabel() vs getlabel(i) has come up again while working on the label priority (RFC-27).
mapscript/swiginc/map.i