From f1fb581cc9c560fb9dddc7402e8fa336aefab8ad Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Thu, 19 Jul 2018 11:12:57 +0200 Subject: [PATCH] mark getPluginDescriptor as transient to avoid getBinding call (performance) --- .../AbstractExtensionPointBean.java | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java b/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java index 3e93ece616dd..2511b2412df9 100644 --- a/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java +++ b/platform/extensions/src/com/intellij/openapi/extensions/AbstractExtensionPointBean.java @@ -1,22 +1,9 @@ -/* - * Copyright 2000-2009 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.openapi.extensions; import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.pico.CachingConstructorInjectionComponentAdapter; +import com.intellij.util.xmlb.annotations.Transient; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.picocontainer.PicoContainer; @@ -28,15 +15,16 @@ public abstract class AbstractExtensionPointBean implements PluginAware { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.extensions.AbstractExtensionPointBean"); protected PluginDescriptor myPluginDescriptor; + @Transient + public PluginDescriptor getPluginDescriptor() { + return myPluginDescriptor; + } + @Override public final void setPluginDescriptor(PluginDescriptor pluginDescriptor) { myPluginDescriptor = pluginDescriptor; } - public PluginDescriptor getPluginDescriptor() { - return myPluginDescriptor; - } - @Nullable public PluginId getPluginId() { return myPluginDescriptor == null ? null : myPluginDescriptor.getPluginId(); @@ -65,7 +53,7 @@ public abstract class AbstractExtensionPointBean implements PluginAware { @NotNull public final T instantiate(final String className, @NotNull final PicoContainer container) throws ClassNotFoundException { - return instantiate(this.findClass(className), container); + return instantiate(this.findClass(className), container); } @NotNull