git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
SpiderScript - Fixes, SpiderWeb's print_test.sw works
[tpg/acess2.git]
/
Usermode
/
Libraries
/
libspiderscript.so_src
/
values.c
diff --git
a/Usermode/Libraries/libspiderscript.so_src/values.c
b/Usermode/Libraries/libspiderscript.so_src/values.c
index
f05360d
..
12e1bf0
100644
(file)
--- a/
Usermode/Libraries/libspiderscript.so_src/values.c
+++ b/
Usermode/Libraries/libspiderscript.so_src/values.c
@@
-32,13
+32,20
@@
void SpiderScript_DereferenceValue(tSpiderValue *Object)
{
if(!Object || Object == ERRPTR) return ;
Object->ReferenceCount --;
+ if(Object->Type == SS_DATATYPE_OBJECT) {
+ }
if( Object->ReferenceCount == 0 )
{
switch( (enum eSpiderScript_DataTypes) Object->Type )
{
case SS_DATATYPE_OBJECT:
- Object->Object->Type->Destructor( Object->Object );
+ Object->Object->ReferenceCount --;
+ if(Object->Object->ReferenceCount == 0) {
+ Object->Object->Type->Destructor( Object->Object );
+ }
+ Object->Object = NULL;
break;
+
case SS_DATATYPE_OPAQUE:
Object->Opaque.Destroy( Object->Opaque.Data );
break;
@@
-169,7
+176,7
@@
tSpiderValue *SpiderScript_CastValueTo(int Type, tSpiderValue *Source)
// Check if anything needs to be done
if( Source->Type == Type ) {
- SpiderScript_
Der
eferenceValue(Source);
+ SpiderScript_
R
eferenceValue(Source);
return Source;
}
UCC
git Repository :: git.ucc.asn.au