[MediaWiki-commits] [Gerrit] Work around Cite reset issue - change (mediawiki...parsoid)

2014-04-30 Thread GWicke (Code Review)
GWicke has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/130630

Change subject: Work around Cite reset issue
..

Work around Cite reset issue

The Cite extension does not currently handle resetState calls in
sub-pipelines, and relies on sharing a single Cite instance between all
pipelines. Fixing this is a longer project, so this patch works around the
issue for now by passing a flag indicating resetState calls in sub-pipelines
and ignoring the call in Cite in that case.

Change-Id: If3d426a5311a55d1c1530860d2b665d3681f1aa9
---
M lib/ext.Cite.js
M lib/mediawiki.parser.js
2 files changed, 8 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/30/130630/1

diff --git a/lib/ext.Cite.js b/lib/ext.Cite.js
index f22f322..1e002c5 100644
--- a/lib/ext.Cite.js
+++ b/lib/ext.Cite.js
@@ -469,9 +469,11 @@
this.references = new References(this);
 };
 
-Cite.prototype.resetState = function() {
-   this.ref.reset();
-   this.references.reset( null, true );
+Cite.prototype.resetState = function(inSubPipeline) {
+   if (!inSubPipeline) {
+   this.ref.reset();
+   this.references.reset( null, true );
+   }
 };
 
 if (typeof module === object) {
diff --git a/lib/mediawiki.parser.js b/lib/mediawiki.parser.js
index a0d2a2c..308639e 100644
--- a/lib/mediawiki.parser.js
+++ b/lib/mediawiki.parser.js
@@ -314,7 +314,7 @@
var pipe;
if ( this.pipelineCache[cacheKey].length ) {
pipe = this.pipelineCache[cacheKey].pop();
-   pipe.resetState();
+   pipe.resetState(true); // signal that we are resetting a 
sub-pipeline
// Clear both 'end' and 'document' handlers
pipe.removeAllListeners('end');
pipe.removeAllListeners('document');
@@ -425,8 +425,8 @@
  * Ex: parser tests. Currently only parser tests exercise
  * this functionality.
  */
-ParserPipeline.prototype.resetState = function() {
-   this._applyToStage(resetState, []);
+ParserPipeline.prototype.resetState = function(inSubPipeline) {
+   this._applyToStage(resetState, [inSubPipeline]);
 };
 
 /**

-- 
To view, visit https://gerrit.wikimedia.org/r/130630
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If3d426a5311a55d1c1530860d2b665d3681f1aa9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: GWicke gwi...@wikimedia.org

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Work around Cite reset issue - change (mediawiki...parsoid)

2014-04-30 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Work around Cite reset issue
..


Work around Cite reset issue

The Cite extension does not currently handle resetState calls in
sub-pipelines, and relies on sharing a single Cite instance between all
pipelines. Fixing this is a longer project, so this patch works around the
issue for now by passing a flag indicating resetState calls in sub-pipelines
and ignoring the call in Cite in that case.

Change-Id: If3d426a5311a55d1c1530860d2b665d3681f1aa9
---
M lib/ext.Cite.js
M lib/mediawiki.parser.js
2 files changed, 8 insertions(+), 6 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/ext.Cite.js b/lib/ext.Cite.js
index f22f322..1e002c5 100644
--- a/lib/ext.Cite.js
+++ b/lib/ext.Cite.js
@@ -469,9 +469,11 @@
this.references = new References(this);
 };
 
-Cite.prototype.resetState = function() {
-   this.ref.reset();
-   this.references.reset( null, true );
+Cite.prototype.resetState = function(inSubPipeline) {
+   if (!inSubPipeline) {
+   this.ref.reset();
+   this.references.reset( null, true );
+   }
 };
 
 if (typeof module === object) {
diff --git a/lib/mediawiki.parser.js b/lib/mediawiki.parser.js
index a0d2a2c..308639e 100644
--- a/lib/mediawiki.parser.js
+++ b/lib/mediawiki.parser.js
@@ -314,7 +314,7 @@
var pipe;
if ( this.pipelineCache[cacheKey].length ) {
pipe = this.pipelineCache[cacheKey].pop();
-   pipe.resetState();
+   pipe.resetState(true); // signal that we are resetting a 
sub-pipeline
// Clear both 'end' and 'document' handlers
pipe.removeAllListeners('end');
pipe.removeAllListeners('document');
@@ -425,8 +425,8 @@
  * Ex: parser tests. Currently only parser tests exercise
  * this functionality.
  */
-ParserPipeline.prototype.resetState = function() {
-   this._applyToStage(resetState, []);
+ParserPipeline.prototype.resetState = function(inSubPipeline) {
+   this._applyToStage(resetState, [inSubPipeline]);
 };
 
 /**

-- 
To view, visit https://gerrit.wikimedia.org/r/130630
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If3d426a5311a55d1c1530860d2b665d3681f1aa9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: GWicke gwi...@wikimedia.org
Gerrit-Reviewer: Subramanya Sastry ssas...@wikimedia.org
Gerrit-Reviewer: jenkins-bot 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits