提交 8ee72d25 编写于 作者: B Benjamin Pasero

resolveEditorModel: dispose input after model is resolved

上级 55b734fd
......@@ -198,12 +198,29 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
public resolveEditorModel(input: IEditorInput, refresh?: boolean): TPromise<IEditorModel>;
public resolveEditorModel(input: IResourceInput, refresh?: boolean): TPromise<ITextEditorModel>;
public resolveEditorModel(input: any, refresh?: boolean): TPromise<IEditorModel> {
let disposeInput = !(input instanceof EditorInput); // dispose input if we created it in here
return this.createInput(input).then(typedInput => {
let resolvePromise: TPromise<IEditorModel>;
if (typedInput instanceof EditorInput) {
return typedInput.resolve(!!refresh);
resolvePromise = typedInput.resolve(!!refresh);
} else {
resolvePromise = TPromise.as<IEditorModel>(null);
}
return resolvePromise.then(model => {
if (disposeInput) {
typedInput.dispose();
}
return TPromise.as<IEditorModel>(null);
return model;
}, error => {
if (disposeInput) {
typedInput.dispose();
}
return TPromise.wrapError(error);
});
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册