diff options
| author | Rich Hickey <richhickey@gmail.com> | 2006-06-03 14:55:58 +0000 |
|---|---|---|
| committer | Rich Hickey <richhickey@gmail.com> | 2006-06-03 14:55:58 +0000 |
| commit | 0f70b780b29908ef7d5088907413f10530e89a2f (patch) | |
| tree | 2b89b94651a30ba98678d978c00865ca8bda6e32 /src/cli/runtime | |
| parent | a70e9347a643ad90827dc5837f937a7ee7e12db9 (diff) | |
got rid of clone in TVal
Diffstat (limited to 'src/cli/runtime')
| -rw-r--r-- | src/cli/runtime/TVal.cs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/cli/runtime/TVal.cs b/src/cli/runtime/TVal.cs index 05b502e9..8f17bb8f 100644 --- a/src/cli/runtime/TVal.cs +++ b/src/cli/runtime/TVal.cs @@ -19,10 +19,22 @@ internal volatile Object val; internal volatile Transaction.Info tinfo;
internal volatile TVal prior;
+internal TVal(){
+
+}
+
+internal TVal(Object val, Transaction.Info tinfo, TVal prior) {
+ this.val = val;
+ this.tinfo = tinfo;
+ this.prior = prior;
+}
+
internal void push(Object val,Transaction.Info tinfo) {
- if(tinfo != null) //not newly created
- this.prior = (TVal) this.MemberwiseClone();
- this.tinfo = tinfo;
+ if(tinfo != null) //not newly created, clone tval part
+ {
+ this.prior = new TVal(this.val,this.tinfo,this.prior);
+ }
+ this.tinfo = tinfo;
this.val = val;
}
|
