Skip to content

Commit

Permalink
perf: avoid expensive set construction in Config ctor
Browse files Browse the repository at this point in the history
  • Loading branch information
fractalwrench committed Jun 24, 2021
1 parent 909d37e commit ecab6d8
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 6 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@
* Cache results from PackageManager
[#1288](https://github.com/bugsnag/bugsnag-android/pull/1288)

* Avoid expensive set construction in Config constructor
[#1289](https://github.com/bugsnag/bugsnag-android/pull/1289)

## 5.9.4 (2021-05-26)

* Unity: add methods for setting autoNotify and autoDetectAnrs
Expand Down
2 changes: 1 addition & 1 deletion bugsnag-android-core/detekt-baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<ID>MagicNumber:DefaultDelivery.kt$DefaultDelivery$499</ID>
<ID>MagicNumber:LastRunInfoStore.kt$LastRunInfoStore$3</ID>
<ID>MaxLineLength:LastRunInfo.kt$LastRunInfo$return "LastRunInfo(consecutiveLaunchCrashes=$consecutiveLaunchCrashes, crashed=$crashed, crashedDuringLaunch=$crashedDuringLaunch)"</ID>
<ID>ProtectedMemberInFinalClass:ConfigInternal.kt$ConfigInternal$protected val plugins = mutableSetOf&lt;Plugin&gt;()</ID>
<ID>ProtectedMemberInFinalClass:ConfigInternal.kt$ConfigInternal$protected val plugins = HashSet&lt;Plugin&gt;()</ID>
<ID>ProtectedMemberInFinalClass:EventInternal.kt$EventInternal$protected fun isAnr(event: Event): Boolean</ID>
<ID>ProtectedMemberInFinalClass:EventInternal.kt$EventInternal$protected fun shouldDiscardClass(): Boolean</ID>
<ID>ProtectedMemberInFinalClass:EventInternal.kt$EventInternal$protected fun updateSeverityInternal(severity: Severity)</ID>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,19 @@ internal class ConfigInternal(var apiKey: String) : CallbackAware, MetadataAware
var maxPersistedSessions: Int = DEFAULT_MAX_PERSISTED_SESSIONS
var context: String? = null

var redactedKeys: Set<String> = metadataState.metadata.redactedKeys
var redactedKeys: Set<String>
get() = metadataState.metadata.redactedKeys
set(value) {
metadataState.metadata.redactedKeys = value
field = value
}

var discardClasses: Set<String> = emptySet()
var enabledReleaseStages: Set<String>? = null
var enabledBreadcrumbTypes: Set<BreadcrumbType>? = BreadcrumbType.values().toSet()
var enabledBreadcrumbTypes: Set<BreadcrumbType>? = null
var projectPackages: Set<String> = emptySet()
var persistenceDirectory: File? = null

protected val plugins = mutableSetOf<Plugin>()
protected val plugins = HashSet<Plugin>()

override fun addOnError(onError: OnErrorCallback) = callbackState.addOnError(onError)
override fun removeOnError(onError: OnErrorCallback) = callbackState.removeOnError(onError)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ internal class ImmutableConfigTest {
assertEquals(seed.maxPersistedEvents, maxPersistedEvents)
assertEquals(seed.maxPersistedSessions, maxPersistedSessions)
assertEquals(seed.persistUser, persistUser)
assertEquals(seed.enabledBreadcrumbTypes, BreadcrumbType.values().toSet())
assertNull(seed.enabledBreadcrumbTypes)
assertNotNull(persistenceDirectory)
}
}
Expand Down

0 comments on commit ecab6d8

Please sign in to comment.