5f7b714ec339cced3780b74740babbdcdb3ab31d
* harbour/include/hboo.ch
* added small comment
* harbour/include/hbapirdd.h
* harbour/src/rdd/workarea.c
* fixed typo in parameter name
* harbour/include/hbapi.h
* harbour/src/vm/arrays.c
+ added to new C functions: hb_arraySetCPtr() and hb_arraySetCConst()
* harbour/src/vm/classes.c
+ added support for passing assign type restrictions to in
HB_OO_MSG_PROPERTY and HB_OO_MSG_CLASSPROPERTY in __clsAddMsg()
It can be done by new option 7-th <xType> parameter.
+ added support for super class casting in __objGetIVars() and
__objSetIVars(). Now this functions can be used to serialize
all object instance variables also overloaded by other classes
so they can be accessed only with super class casting or by
nonvirtual messages. It means that above functions create fully
functional serialization system and can be used as backed for
HB_SERIALIZE() and HB_VALTOEXP() when objects are serialized.
Such serialization consumes more time and needs more memory but
objects can be deserialized by modified code which uses slightly
different raw object representation. The original HB_SERIALIZE()/
HB_VALTOEXP() format is very fast and compact but it needs exactly
the same raw object representation in the program which serialized
object and in the program which later desrialize it. It may create
serious problems if programmer modify the code, i.e adding new
instance variables or changing their order in the object class or
or in one of its ancestors and then tries to restore some objects
serialized by previous program version.
* updated some comments and few typos in local names
* harbour/src/rtl/valtoexp.prg
* modified HB_VALTOEXP() to use be default __objGetIVars() and
__objSetIVars() to serialize objects.
+ added 2-nd parameter <lRaw> to HB_VALTOEXP(). By default it's .F.
Setting it to .T. forces all raw serialization format.
Description
Harbour Core — Reference source for Five development
Languages
C
80.3%
xBase
17.8%
Makefile
0.6%
C++
0.4%
Harbour
0.4%
Other
0.3%