Reference self indirectly, via a property that can be later cleaned gc
authorJaroslav Tulach <jtulach@netbeans.org>
Fri, 14 Nov 2014 18:21:02 +0100
branchgc
changeset 880ac1d06a4a36d
parent 872 1b8f1aed344a
child 890 5bea583947da
Reference self indirectly, via a property that can be later cleaned
ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java
     1.1 --- a/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java	Wed Nov 12 11:35:11 2014 +0100
     1.2 +++ b/ko4j/src/main/java/org/netbeans/html/ko4j/Knockout.java	Fri Nov 14 18:21:02 2014 +0100
     1.3 @@ -137,10 +137,11 @@
     1.4          + "  var trigger = ko['observable']()['extend']({'notify':'always'});"
     1.5          + "  function realGetter() {\n"
     1.6          + "    try {\n"
     1.7 -        + "      var v = self.@org.netbeans.html.ko4j.Knockout::getValue(I)(index);\n"
     1.8 +        + "      var s = ret['ko4j'];\n"
     1.9 +        + "      var v = s.@org.netbeans.html.ko4j.Knockout::getValue(I)(index);\n"
    1.10          + "      return v;\n"
    1.11          + "    } catch (e) {\n"
    1.12 -        + "      alert(\"Cannot call getValue on \" + self + \" prop: \" + name + \" error: \" + e);\n"
    1.13 +        + "      alert(\"Cannot call getValue on \" + ret['ko4j'] + \" prop: \" + name + \" error: \" + e);\n"
    1.14          + "    }\n"
    1.15          + "  }\n"
    1.16          + "  var activeGetter = function() { return value; };\n"
    1.17 @@ -157,7 +158,8 @@
    1.18          + "  if (!readOnly) {\n"
    1.19          + "    bnd['write'] = function(val) {\n"
    1.20          + "      var model = val['ko4j'];\n"
    1.21 -        + "      self.@org.netbeans.html.ko4j.Knockout::setValue(ILjava/lang/Object;)(index, model ? model : val);\n"
    1.22 +        + "      var s = ret['ko4j'];\n"
    1.23 +        + "      s.@org.netbeans.html.ko4j.Knockout::setValue(ILjava/lang/Object;)(index, model ? model : val);\n"
    1.24          + "    };\n"
    1.25          + "  };\n"
    1.26          + "  var cmpt = ko['computed'](bnd);\n"
    1.27 @@ -172,7 +174,8 @@
    1.28          + "}\n"
    1.29          + "function koExpose(index, name) {\n"
    1.30          + "  ret[name] = function(data, ev) {\n"
    1.31 -        + "    self.@org.netbeans.html.ko4j.Knockout::call(ILjava/lang/Object;Ljava/lang/Object;)(index, data, ev);\n"
    1.32 +        + "    var s = ret['ko4j'];\n"
    1.33 +        + "    s.@org.netbeans.html.ko4j.Knockout::call(ILjava/lang/Object;Ljava/lang/Object;)(index, data, ev);\n"
    1.34          + "  };\n"
    1.35          + "}\n"
    1.36          + "for (var i = 0; i < funcNames.length; i++) {\n"