Ticket #1794 (closed defect: fixed)
mapObj.nextLabel() can be used only once
| Reported by: | eugoss@… | Owned by: | aboudreault |
|---|---|---|---|
| Priority: | high | Milestone: | 6.0 release |
| Component: | Documentation - MapServer | Version: | 4.8 |
| Severity: | normal | Keywords: | |
| Cc: | dmorissette, jmckenna |
Description (last modified by dmorissette) (diff)
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;
}
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

