[project @ 2002-02-01 10:50:35 by simonmar]
When distinguishing between code & data pointers, rather than testing
for membership of the text section, test for not membership of one of
the data sections.
The reason for this change is that testing for membership of the text
section was fragile: we could only test whether a value was smaller
than the end address, because there doesn't appear to be a portable
way to find the beginning of the text section. Indeed, the test
breaks on very recent Linux kernels which mmap() memory below the
program text.
In fact, the reversed test may be faster because the expected common
case is when the pointer is into the dynamic heap, and we eliminate
these case immediately in the new test. A quick test shows no
measurable performance difference with the change.
MERGE TO STABLE