AppCode: more safe user-data handling when updating file encodings

(cherry-picked from d801698)
This commit is contained in:
Anton Makeev
2012-09-14 14:30:05 +02:00
parent 7772be6e54
commit d38cec60e5
@@ -486,6 +486,10 @@ public abstract class VirtualFile extends UserDataHolderBase implements Modifica
}
public void setCharset(final Charset charset) {
setCharset(charset, null);
}
public void setCharset(final Charset charset, @Nullable Runnable whenChanged) {
final Charset old = getUserData(CHARSET_KEY);
putUserData(CHARSET_KEY, charset);
if (Comparing.equal(charset, old)) return;
@@ -497,6 +501,7 @@ public abstract class VirtualFile extends UserDataHolderBase implements Modifica
setBOM(bom);
if (old != null) { //do not send on detect
if (whenChanged != null) whenChanged.run();
VirtualFileManager.getInstance().notifyPropertyChanged(this, PROP_ENCODING, old, charset);
}
}