2013-01-10 23:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new internal C function:
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource,
PHB_NESTED_CLONED pClonedList );
it copies object or clone it if class overloaded clone operation.
; TODO: add support for user defined class clone operation
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
* changed returned type of hb_itemCloneTo() to void
* harbour/src/vm/itemapi.c
* use hb_objCloneTo() in hb_itemClone*() functions.
* harbour/src/vm/arrays.c
* use hb_objCloneTo() in array/hash clone code.
* harbour/src/vm/arrayshb.c
! fixed return values in AEVAL() and ACOPY() when array
is passed by reference.
* harbour/src/rtl/tclass.prg
* harbour/src/vm/classes.c
* declare :SUPER and :__SUPER messages as non virtual ones.
Now ::SUPER and ::__SUPER messages executed in object method
returns casting to 1-st super object of the class in which
executed method was defined.
* harbour/include/hbclass.ch
* removed xtranslations for SUPER(): - this workaround for
missing non virtual messages in some Clipper OOP implementations
was breaking valid code which tried to use real :SUPER message
and made SUPER reserved word, i.e. it was not possible to create
code like:
LOCAL super := ::parent2
? super:v1, super:v2
Now this hack is not longer necessary and :SUPER is non virtual
massage in Harbour.
INCOMPATIBLE: If someone has some code like:
SUPER():MSG()
SUPER( PARENT ):MSG()
then please change it to:
::SUPER:MSG()
::PARENT:MSG()
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbmysql/tsqlbrw.prg
! fixed to use ::super() instead of super()
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
+ added GOCOLD() method - this method is necessary for WAs
passed to HB_DBDETACH()
* harbour/doc/xhb-diff.txt
* small update
* harbour/contrib/*/*.hbx
* regenerated
This commit is contained in:
@@ -10,6 +10,67 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2013-01-10 23:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* harbour/include/hbapicls.h
|
||||
* harbour/src/vm/classes.c
|
||||
+ added new internal C function:
|
||||
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource,
|
||||
PHB_NESTED_CLONED pClonedList );
|
||||
it copies object or clone it if class overloaded clone operation.
|
||||
; TODO: add support for user defined class clone operation
|
||||
|
||||
* harbour/include/hbapiitm.h
|
||||
* harbour/src/vm/itemapi.c
|
||||
* changed returned type of hb_itemCloneTo() to void
|
||||
|
||||
* harbour/src/vm/itemapi.c
|
||||
* use hb_objCloneTo() in hb_itemClone*() functions.
|
||||
|
||||
* harbour/src/vm/arrays.c
|
||||
* use hb_objCloneTo() in array/hash clone code.
|
||||
|
||||
* harbour/src/vm/arrayshb.c
|
||||
! fixed return values in AEVAL() and ACOPY() when array
|
||||
is passed by reference.
|
||||
|
||||
* harbour/src/rtl/tclass.prg
|
||||
* harbour/src/vm/classes.c
|
||||
* declare :SUPER and :__SUPER messages as non virtual ones.
|
||||
Now ::SUPER and ::__SUPER messages executed in object method
|
||||
returns casting to 1-st super object of the class in which
|
||||
executed method was defined.
|
||||
|
||||
* harbour/include/hbclass.ch
|
||||
* removed xtranslations for SUPER(): - this workaround for
|
||||
missing non virtual messages in some Clipper OOP implementations
|
||||
was breaking valid code which tried to use real :SUPER message
|
||||
and made SUPER reserved word, i.e. it was not possible to create
|
||||
code like:
|
||||
LOCAL super := ::parent2
|
||||
? super:v1, super:v2
|
||||
Now this hack is not longer necessary and :SUPER is non virtual
|
||||
massage in Harbour.
|
||||
INCOMPATIBLE: If someone has some code like:
|
||||
SUPER():MSG()
|
||||
SUPER( PARENT ):MSG()
|
||||
then please change it to:
|
||||
::SUPER:MSG()
|
||||
::PARENT:MSG()
|
||||
|
||||
* harbour/contrib/hbmysql/tmysql.prg
|
||||
* harbour/contrib/hbmysql/tsqlbrw.prg
|
||||
! fixed to use ::super() instead of super()
|
||||
|
||||
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
|
||||
+ added GOCOLD() method - this method is necessary for WAs
|
||||
passed to HB_DBDETACH()
|
||||
|
||||
* harbour/doc/xhb-diff.txt
|
||||
* small update
|
||||
|
||||
* harbour/contrib/*/*.hbx
|
||||
* regenerated
|
||||
|
||||
2013-01-10 16:21 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* contrib/hbmysql/tmysql.prg
|
||||
! commented code converted to #if 0 block
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// HB_FUNC_EXCLUDE HB_GT_*
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -726,7 +726,7 @@ METHOD New( nSocket, cQuery, cTableName ) CLASS TMySQLTable
|
||||
|
||||
LOCAL i
|
||||
|
||||
super:New( nSocket, AllTrim( cQuery ) )
|
||||
::super:New( nSocket, AllTrim( cQuery ) )
|
||||
|
||||
::cTable := Lower( cTableName )
|
||||
::aOldValue := {}
|
||||
@@ -740,7 +740,7 @@ METHOD New( nSocket, cQuery, cTableName ) CLASS TMySQLTable
|
||||
|
||||
METHOD GetRow( nRow ) CLASS TMySQLTable
|
||||
|
||||
LOCAL oRow := super:GetRow( nRow ), i
|
||||
LOCAL oRow := ::super:GetRow( nRow ), i
|
||||
|
||||
IF oRow != NIL
|
||||
oRow:cTable := ::cTable
|
||||
@@ -759,7 +759,7 @@ METHOD Skip( nRow ) CLASS TMySQLTable
|
||||
|
||||
LOCAL i
|
||||
|
||||
super:skip( nRow )
|
||||
::super:skip( nRow )
|
||||
|
||||
FOR i := 1 TO ::nNumFields
|
||||
::aOldValue[ i ] := ::FieldGet( i )
|
||||
|
||||
@@ -93,7 +93,7 @@ ENDCLASS
|
||||
|
||||
METHOD New( cHeading, bBlock, oBrw ) CLASS TBColumnSQL
|
||||
|
||||
super:New( cHeading, bBlock )
|
||||
::super:New( cHeading, bBlock )
|
||||
::oBrw := oBrw
|
||||
|
||||
RETURN Self
|
||||
@@ -163,7 +163,7 @@ METHOD New( nTop, nLeft, nBottom, nRight, oServer, oQuery, cTable ) CLASS TBrows
|
||||
HB_SYMBOL_UNUSED( oServer )
|
||||
HB_SYMBOL_UNUSED( cTable )
|
||||
|
||||
super:New( nTop, nLeft, nBottom, nRight )
|
||||
::super:New( nTop, nLeft, nBottom, nRight )
|
||||
|
||||
::oQuery := oQuery
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// HB_FUNC_EXCLUDE win_oleServerInit
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT!
|
||||
* WARNING: Automatically generated code below. DO NOT EDIT! (except casing)
|
||||
* Regenerate using hbmk2 '-hbx=' option.
|
||||
*/
|
||||
|
||||
|
||||
@@ -2084,15 +2084,19 @@ In xHarbour by default work areas are global to the application and there
|
||||
is no protection mechanism against concurrent access so if two threads try
|
||||
to access the same work area in the same time they can corrupt internal
|
||||
RDD data. It means that for safe concurrent WA access in xHarbour user have
|
||||
to create his own protection mechanism (some different version of LOCAL
|
||||
WORKAREA / UNLOCK WORKAREA commands using some other synchronization
|
||||
methods available in xHarbour, i.e. mutexes).
|
||||
to create his own protection mechanism (different version of LOCK WORKAREA/
|
||||
UNLOCK WORKAREA commands using some other synchronization methods available
|
||||
in xHarbour, i.e. mutexes).
|
||||
Later support for thread local work areas was added to xHarbour but
|
||||
without any mechanism which allows to move work area from one thread to
|
||||
another. This can be controlled by global SET (SETs are global in xHarbour)
|
||||
_SET_WORKAREAS_SHARED
|
||||
Setting it to .T. disables global work areas and switches to thread local
|
||||
ones.
|
||||
without any mechanism which allows to move work area from one thread
|
||||
to another. This can be controlled by global SET:
|
||||
SET( _SET_WORKAREAS_SHARED, <lOnOff> )
|
||||
or commands:
|
||||
SET WORKAREAS SHARED => SET( _SET_WORKAREAS_SHARED, .T. )
|
||||
SET WORKAREAS PRIVATE => SET( _SET_WORKAREAS_SHARED, .F. )
|
||||
(SETs are global not thread local in xHarbour MT model)
|
||||
Setting _SET_WORKAREAS_SHARED to .F. disables global work areas and
|
||||
switches to thread local ones.
|
||||
There is no technical or mathematical reason to keep such strange
|
||||
implementation because it does not give any new functionality to
|
||||
programmer in comparison to xBase++ and Harbour but allows to easy
|
||||
|
||||
@@ -102,6 +102,7 @@ extern HB_BOOL hb_objGetVarRef( PHB_ITEM pObject, PHB_SYMB pMessage, PHB_STAC
|
||||
extern HB_BOOL hb_objHasOperator( PHB_ITEM pObject, HB_USHORT uiOperator );
|
||||
extern HB_BOOL hb_objOperatorCall( HB_USHORT uiOperator, PHB_ITEM pResult, PHB_ITEM pObject, PHB_ITEM pMsgArg1, PHB_ITEM pMsgArg2 );
|
||||
extern void hb_objDestructorCall( PHB_ITEM pObject );
|
||||
extern void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource, PHB_NESTED_CLONED pClonedList );
|
||||
|
||||
#ifndef HB_NO_PROFILER
|
||||
/* profiler for object management */
|
||||
|
||||
@@ -174,7 +174,7 @@ extern HB_EXPORT PHB_ITEM hb_itemUnShareString( PHB_ITEM pItem ); /* un-shar
|
||||
extern HB_EXPORT PHB_ITEM hb_itemReSizeString( PHB_ITEM pItem, HB_SIZE nSize ); /* Resize string buffer of given string item - the pItem have to be valid unrefed string item */
|
||||
extern HB_EXPORT HB_BOOL hb_itemGetWriteCL( PHB_ITEM pItem, char ** pszValue, HB_SIZE * pnLen );
|
||||
extern HB_EXPORT PHB_ITEM hb_itemClone ( PHB_ITEM pItem ); /* clone the given item */
|
||||
extern HB_EXPORT PHB_ITEM hb_itemCloneTo ( PHB_ITEM pDest, PHB_ITEM pSource ); /* clone the given item */
|
||||
extern HB_EXPORT void hb_itemCloneTo ( PHB_ITEM pDest, PHB_ITEM pSource ); /* clone the given item */
|
||||
extern HB_EXPORT char * hb_itemStr ( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ); /* convert a number to a string */
|
||||
extern HB_EXPORT char * hb_itemString ( PHB_ITEM pItem, HB_SIZE * nLen, HB_BOOL * bFreeReq ); /* Convert any scalar to a string */
|
||||
extern HB_EXPORT HB_BOOL hb_itemStrBuf ( char *szResult, PHB_ITEM pNumber, int iSize, int iDec ); /* convert a number to a string */
|
||||
|
||||
@@ -216,7 +216,7 @@ DECLARE HBClass ;
|
||||
::realclass:<MessageName>([ <MsgParams>])
|
||||
|
||||
/* Indirect super casting translation */
|
||||
#xtranslate :Super( <SuperClass> ): => :<SuperClass>:
|
||||
#xtranslate :Super( <!SuperClass!> ): => :<SuperClass>:
|
||||
|
||||
|
||||
#xtranslate __HB_CLS_OPT(<a>,<b>) => <a>
|
||||
@@ -260,12 +260,7 @@ DECLARE HBClass ;
|
||||
nScope := HB_OO_CLSTP_EXPORTED ; HB_SYMBOL_UNUSED( nScope ) ;;
|
||||
oClass := iif( <.metaClass.>, <(metaClass)>, HBClass():new( <(ClassName)>, __HB_CLS_PAR( [ @<SuperClass1>() ] [ , @<SuperClassN>() ] ), @__HB_CLS_OPT([__HB_CLS_ASID(<FuncName>),] <ClassName>)() [, <.modulfriend.> ] ) ) ;;
|
||||
#undef _CLASS_NAME_ ; #define _CLASS_NAME_ <ClassName> ;;
|
||||
#undef _CLASS_MODE_ ; #define _CLASS_MODE_ _CLASS_DECLARATION_ ;
|
||||
[ ; #translate Super( <SuperClassN> ): => ::<SuperClassN>: ] ;
|
||||
[ ; #translate Super( <SuperClass1> ): => ::<SuperClass1>: ] ;
|
||||
[ ; #translate Super(): => ::<SuperClass1>: ] ;
|
||||
[ ; #translate Super: => ::<SuperClass1>: ] ;
|
||||
[ ; #translate ::Super : => ::<SuperClass1>: ]
|
||||
#undef _CLASS_MODE_ ; #define _CLASS_MODE_ _CLASS_DECLARATION_
|
||||
|
||||
#xcommand ENDCLASS [<lck: LOCK, LOCKED>] => ;
|
||||
oClass:Create() ; [<-lck-> __clsLock( oClass:hClass ) ] ;;
|
||||
|
||||
@@ -1109,6 +1109,12 @@ STATIC FUNCTION AR_ZAP( nWA )
|
||||
|
||||
RETURN HB_SUCCESS
|
||||
|
||||
STATIC FUNCTION AR_GOCOLD( nWA )
|
||||
|
||||
HB_SYMBOL_UNUSED( nWA )
|
||||
|
||||
RETURN HB_SUCCESS
|
||||
|
||||
STATIC FUNCTION AR_FOUND( nWa, lFound )
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, hb_StrFormat( "nWA = %1$d, lFound = %2$s", nWa, hb_ValToExp( lFound ) ) )
|
||||
@@ -1473,6 +1479,7 @@ FUNCTION ARRAYRDD_GETFUNCTABLE( pFuncCount, pFuncTable, pSuperTable, nRddID, pSu
|
||||
aMyFunc[ UR_PUTVALUE ] := ( @AR_PUTVALUE() )
|
||||
aMyFunc[ UR_PACK ] := ( @AR_PACK() )
|
||||
aMyFunc[ UR_ZAP ] := ( @AR_ZAP() )
|
||||
aMyFunc[ UR_GOCOLD ] := ( @AR_GOCOLD() )
|
||||
aMyFunc[ UR_FOUND ] := ( @AR_FOUND() )
|
||||
aMyFunc[ UR_SEEK ] := ( @AR_SEEK() )
|
||||
aMyFunc[ UR_INFO ] := ( @AR_INFO() )
|
||||
|
||||
@@ -233,8 +233,8 @@ STATIC PROCEDURE Create( /* MetaClass */ )
|
||||
|
||||
IF ! Empty( ahSuper )
|
||||
IF ahSuper[ 1 ] != 0
|
||||
__clsAddMsg( hClass, "SUPER" , 0, HB_OO_MSG_SUPER, ahSuper[ 1 ], HB_OO_CLSTP_EXPORTED )
|
||||
__clsAddMsg( hClass, "__SUPER", 0, HB_OO_MSG_SUPER, ahSuper[ 1 ], HB_OO_CLSTP_EXPORTED )
|
||||
__clsAddMsg( hClass, "SUPER" , 0, HB_OO_MSG_SUPER, ahSuper[ 1 ], HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_NONVIRTUAL )
|
||||
__clsAddMsg( hClass, "__SUPER", 0, HB_OO_MSG_SUPER, ahSuper[ 1 ], HB_OO_CLSTP_EXPORTED + HB_OO_CLSTP_NONVIRTUAL )
|
||||
ENDIF
|
||||
ENDIF
|
||||
__clsAddMsg( hClass, "REALCLASS", 0, HB_OO_MSG_REALCLASS, 0, HB_OO_CLSTP_EXPORTED )
|
||||
|
||||
@@ -1465,7 +1465,7 @@ static void hb_arrayCloneBody( PHB_BASEARRAY pSrcBaseArray, PHB_BASEARRAY pDstBa
|
||||
void hb_cloneNested( PHB_ITEM pDstItem, PHB_ITEM pSrcItem, PHB_NESTED_CLONED pClonedList )
|
||||
{
|
||||
/* Clipper clones nested array ONLY if NOT an Object!!! */
|
||||
if( HB_IS_ARRAY( pSrcItem ) && pSrcItem->item.asArray.value->uiClass == 0 )
|
||||
if( HB_IS_ARRAY( pSrcItem ) )
|
||||
{
|
||||
PHB_NESTED_CLONED pCloned = pClonedList;
|
||||
PHB_BASEARRAY pBaseArray = pSrcItem->item.asArray.value;
|
||||
@@ -1480,6 +1480,8 @@ void hb_cloneNested( PHB_ITEM pDstItem, PHB_ITEM pSrcItem, PHB_NESTED_CLONED pCl
|
||||
|
||||
if( pCloned )
|
||||
hb_itemCopy( pDstItem, pCloned->pDest );
|
||||
else if( pSrcItem->item.asArray.value->uiClass != 0 )
|
||||
hb_objCloneTo( pDstItem, pSrcItem, pClonedList );
|
||||
else
|
||||
{
|
||||
hb_arrayNew( pDstItem, pBaseArray->nLen );
|
||||
|
||||
@@ -374,7 +374,7 @@ HB_FUNC( AEVAL )
|
||||
HB_ISNUM( 3 ) ? &nStart : NULL,
|
||||
HB_ISNUM( 4 ) ? &nCount : NULL );
|
||||
|
||||
hb_itemReturn( hb_stackItemFromBase( 1 ) ); /* AEval() returns the array itself */
|
||||
hb_itemReturn( pArray ); /* AEval() returns the array itself */
|
||||
}
|
||||
else
|
||||
hb_errRT_BASE( EG_ARG, 2017, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
|
||||
@@ -401,7 +401,7 @@ HB_FUNC( ACOPY )
|
||||
HB_ISNUM( 5 ) ? &nTarget : NULL );
|
||||
}
|
||||
|
||||
hb_itemReturn( hb_stackItemFromBase( 2 ) ); /* ACopy() returns the target array */
|
||||
hb_itemReturn( pDstArray ); /* ACopy() returns the target array */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ typedef struct
|
||||
HB_TYPE itemType; /* Type of item in restricted assignment */
|
||||
HB_USHORT uiSprClass; /* Originalclass'handel (super or current class'handel if not herited). */ /*Added by RAC&JF*/
|
||||
HB_USHORT uiScope; /* Scoping value */
|
||||
HB_USHORT uiData; /* Item position for instance data, class data and shared data (Harbour like, begin from 1) or delegated message index object */
|
||||
HB_USHORT uiData; /* Item position for instance data, class data and shared data (Harbour like, begin from 1), supercast class or delegated message index object */
|
||||
HB_USHORT uiOffset; /* position in pInitData for class datas (from 1) or offset to instance area in inherited instance data and supercast messages (from 0) */
|
||||
HB_USHORT uiPrevCls;
|
||||
HB_USHORT uiPrevMth;
|
||||
@@ -1431,8 +1431,7 @@ HB_SIZE hb_clsGetVarIndex( HB_USHORT uiClass, PHB_DYNS pVarSym )
|
||||
if( pFuncSym == &s___msgSync || pFuncSym == &s___msgSyncClass )
|
||||
pFuncSym = pMethod->pRealSym;
|
||||
|
||||
if( pFuncSym->value.pFunPtr == HB_FUNCNAME( msgSetData ) ||
|
||||
pFuncSym->value.pFunPtr == HB_FUNCNAME( msgGetData ) )
|
||||
if( pFuncSym == &s___msgSetData || pFuncSym == &s___msgGetData )
|
||||
return pMethod->uiData + pMethod->uiOffset;
|
||||
}
|
||||
}
|
||||
@@ -2126,7 +2125,7 @@ HB_BOOL hb_objGetVarRef( PHB_ITEM pObject, PHB_SYMB pMessage,
|
||||
if( pExecSym )
|
||||
{
|
||||
HB_STACK_TLS_PRELOAD
|
||||
if( pExecSym->value.pFunPtr == HB_FUNCNAME( msgSetData ) )
|
||||
if( pExecSym == &s___msgSetData )
|
||||
{
|
||||
HB_USHORT uiObjClass = pObject->item.asArray.value->uiClass;
|
||||
PCLASS pClass = s_pClasses[ pStack->uiClass ];
|
||||
@@ -2145,7 +2144,7 @@ HB_BOOL hb_objGetVarRef( PHB_ITEM pObject, PHB_SYMB pMessage,
|
||||
|
||||
return hb_arrayGetItemRef( pObject, nIndex, hb_stackReturnItem() );
|
||||
}
|
||||
else if( pExecSym->value.pFunPtr == HB_FUNCNAME( msgSetClsData ) )
|
||||
else if( pExecSym == &s___msgSetClsData )
|
||||
{
|
||||
PCLASS pClass = s_pClasses[ pStack->uiClass ];
|
||||
PMETHOD pMethod = pClass->pMethods + pStack->uiMethod;
|
||||
@@ -2153,7 +2152,7 @@ HB_BOOL hb_objGetVarRef( PHB_ITEM pObject, PHB_SYMB pMessage,
|
||||
return hb_arrayGetItemRef( pClass->pClassDatas, pMethod->uiData,
|
||||
hb_stackReturnItem() );
|
||||
}
|
||||
else if( pExecSym->value.pFunPtr == HB_FUNCNAME( msgSetShrData ) )
|
||||
else if( pExecSym == &s___msgSetShrData )
|
||||
{
|
||||
PCLASS pClass = s_pClasses[ pStack->uiClass ];
|
||||
PMETHOD pMethod = pClass->pMethods + pStack->uiMethod;
|
||||
@@ -2161,7 +2160,7 @@ HB_BOOL hb_objGetVarRef( PHB_ITEM pObject, PHB_SYMB pMessage,
|
||||
return hb_arrayGetItemRef( s_pClasses[ pMethod->uiSprClass ]->pSharedDatas,
|
||||
pMethod->uiData, hb_stackReturnItem() );
|
||||
}
|
||||
else if( pExecSym->value.pFunPtr == HB_FUNCNAME( msgScopeErr ) )
|
||||
else if( pExecSym == &s___msgScopeErr )
|
||||
{
|
||||
pExecSym->value.pFunPtr();
|
||||
}
|
||||
@@ -2214,9 +2213,9 @@ static void hb_objSupperDestructorCall( PHB_ITEM pObject, PCLASS pClass )
|
||||
{
|
||||
if( pMethod->pFuncSym == &s___msgSuper )
|
||||
{
|
||||
PCLASS pSupperClass = s_pClasses[ pMethod->uiSprClass ];
|
||||
PCLASS pSupperClass = s_pClasses[ pMethod->uiData ];
|
||||
if( pSupperClass->fHasDestructor && pSupperClass != pClass )
|
||||
pcClasses[ pMethod->uiSprClass ] |= 1;
|
||||
pcClasses[ pMethod->uiData ] |= 1;
|
||||
}
|
||||
else if( pMethod->pMessage == s___msgDestructor.pDynSym )
|
||||
pcClasses[ pMethod->uiSprClass ] |= 2;
|
||||
@@ -2426,8 +2425,7 @@ PHB_ITEM hb_objGetVarPtr( PHB_ITEM pObject, PHB_DYNS pVarMsg )
|
||||
if( pFuncSym == &s___msgSync || pFuncSym == &s___msgSyncClass )
|
||||
pFuncSym = pMethod->pRealSym;
|
||||
|
||||
if( pFuncSym->value.pFunPtr == HB_FUNCNAME( msgSetData ) ||
|
||||
pFuncSym->value.pFunPtr == HB_FUNCNAME( msgGetData ) )
|
||||
if( pFuncSym == &s___msgSetData || pFuncSym == &s___msgGetData )
|
||||
{
|
||||
HB_SIZE nIndex = pMethod->uiData + pMethod->uiOffset;
|
||||
if( pObject->item.asArray.value->uiPrevCls )
|
||||
@@ -2489,6 +2487,18 @@ static PHB_SYMB hb_objGetFuncSym( PHB_ITEM pItem )
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* clone object if user defined clone method or copy it */
|
||||
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource, PHB_NESTED_CLONED pClonedList )
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_objCloneTo(%p,%p,%p)", pDest, pSource, pClonedList ) );
|
||||
|
||||
HB_SYMBOL_UNUSED( pClonedList );
|
||||
|
||||
/* TODO: add support for user defined clone operation */
|
||||
|
||||
hb_itemCopy( pDest, pSource );
|
||||
}
|
||||
|
||||
/* send message which allows to set execution context for debugger */
|
||||
void hb_dbg_objSendMessage( int iProcLevel, PHB_ITEM pObject, PHB_ITEM pMessage, int iParamOffset )
|
||||
{
|
||||
@@ -3035,7 +3045,7 @@ static HB_BOOL hb_clsAddMsg( HB_USHORT uiClass, const char * szMessage,
|
||||
|
||||
case HB_OO_MSG_SUPER:
|
||||
|
||||
pNewMeth->uiSprClass = uiSprClass; /* store the super handel */
|
||||
pNewMeth->uiData = uiSprClass; /* store the super handel */
|
||||
pNewMeth->uiOffset = uiIndex; /* offset to instance area */
|
||||
pNewMeth->uiScope = uiScope;
|
||||
pNewMeth->pFuncSym = &s___msgSuper;
|
||||
@@ -3297,7 +3307,7 @@ static HB_USHORT hb_clsNew( const char * szClassName, HB_USHORT uiDatas,
|
||||
if( pSprCls->pMethods[ n ].pMessage &&
|
||||
pSprCls->pMethods[ n ].pFuncSym == &s___msgSuper )
|
||||
{
|
||||
PCLASS pCls = s_pClasses[ pSprCls->pMethods[ n ].uiSprClass ];
|
||||
PCLASS pCls = s_pClasses[ pSprCls->pMethods[ n ].uiData ];
|
||||
|
||||
pMethod = hb_clsAllocMsg( pNewCls,
|
||||
pSprCls->pMethods[ n ].pMessage );
|
||||
@@ -3321,7 +3331,8 @@ static HB_USHORT hb_clsNew( const char * szClassName, HB_USHORT uiDatas,
|
||||
{
|
||||
pNewCls->uiMethods++;
|
||||
pMethod->pMessage = pSprCls->pClassSym;
|
||||
pMethod->uiSprClass = uiSuperCls;
|
||||
pMethod->uiSprClass = pNewCls->uiClass;
|
||||
pMethod->uiData = uiSuperCls;
|
||||
pMethod->uiScope = HB_OO_CLSTP_EXPORTED;
|
||||
pMethod->pFuncSym = &s___msgSuper;
|
||||
pMethod->uiOffset = pNewCls->uiDatas;
|
||||
@@ -3445,7 +3456,8 @@ static HB_USHORT hb_clsNew( const char * szClassName, HB_USHORT uiDatas,
|
||||
{
|
||||
pNewCls->uiMethods++;
|
||||
pMethod->pMessage = pNewCls->pClassSym;
|
||||
pMethod->uiSprClass = s_uiClasses;
|
||||
pMethod->uiSprClass = pNewCls->uiClass;
|
||||
pMethod->uiData = s_uiClasses;
|
||||
pMethod->uiScope = HB_OO_CLSTP_EXPORTED;
|
||||
pMethod->pFuncSym = &s___msgSuper;
|
||||
pMethod->uiOffset = pNewCls->uiDatas;
|
||||
@@ -4658,7 +4670,7 @@ HB_FUNC_STATIC( msgSuper )
|
||||
PHB_STACK_STATE pStack = hb_stackBaseItem()->item.asSymbol.stackstate;
|
||||
|
||||
hb_clsMakeSuperObject( hb_stackReturnItem(), hb_stackSelfItem(),
|
||||
s_pClasses[ pStack->uiClass ]->pMethods[ pStack->uiMethod ].uiSprClass );
|
||||
s_pClasses[ pStack->uiClass ]->pMethods[ pStack->uiMethod ].uiData );
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -2133,27 +2133,38 @@ PHB_ITEM hb_itemClone( PHB_ITEM pItem )
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_itemClone(%p)", pItem ) );
|
||||
|
||||
if( HB_IS_ARRAY( pItem ) )
|
||||
return hb_arrayClone( pItem );
|
||||
{
|
||||
if( HB_IS_OBJECT( pItem ) )
|
||||
{
|
||||
PHB_ITEM pResult = hb_itemNew( NULL );
|
||||
|
||||
hb_objCloneTo( pResult, pItem, NULL );
|
||||
return pResult;
|
||||
}
|
||||
else
|
||||
return hb_arrayClone( pItem );
|
||||
}
|
||||
else if( HB_IS_HASH( pItem ) )
|
||||
return hb_hashClone( pItem );
|
||||
|
||||
else
|
||||
return hb_itemNew( pItem );
|
||||
}
|
||||
|
||||
PHB_ITEM hb_itemCloneTo( PHB_ITEM pDest, PHB_ITEM pSource )
|
||||
void hb_itemCloneTo( PHB_ITEM pDest, PHB_ITEM pSource )
|
||||
{
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_itemCloneTo(%p,%p)", pDest, pSource ) );
|
||||
|
||||
if( HB_IS_ARRAY( pSource ) )
|
||||
return hb_arrayCloneTo( pDest, pSource );
|
||||
|
||||
{
|
||||
if( HB_IS_OBJECT( pSource ) )
|
||||
hb_objCloneTo( pDest, pSource, NULL );
|
||||
else
|
||||
hb_arrayCloneTo( pDest, pSource );
|
||||
}
|
||||
else if( HB_IS_HASH( pSource ) )
|
||||
return hb_hashCloneTo( pDest, pSource );
|
||||
|
||||
hb_itemCopy( pDest, pSource );
|
||||
return pDest;
|
||||
hb_hashCloneTo( pDest, pSource );
|
||||
else
|
||||
hb_itemCopy( pDest, pSource );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user