> FYI: I haven't investigated this deeply; I hope someone from
Metrowerks can
> shine some light on why the problem exists, why it hasn't been solved
and
> when it will be solved. This *really* is a disability for C++
programmers
> and in my opinion the C++ lanaguage brings a lot of advantage to Palm
> programmer if only the C++ implementations where *fine* tuned to the
unique
> properties of the Palm paltform.

C++ virtual tables are constant data while the program is running.
However, they aren't constant before the program runs, since Palm OS can
move around the blocks of memory that hold code.  At launch time, the
runtime code has to copy the vtable into read/write memory (the global
space), then make modifications to point all the function pointers in
the vtable to the correct location in the now fixed code segment.

The purpose of no-global launches is to quickly run a Palm application
to respond to some system event.  Palm decided that these launches would
not have a global space on the heap allocated, since it takes extra time
to setup that space, copy the initialization data, and handle the
relocations.

We're working on some things that might help in the future, but nothing
I can announce just yet.  Making C++ work better is one of the primary
goals of the Palm compiler team for our next release.



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to