mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Undo breaking change for ReadableMap.entryIterator for Kotlin consumers. (#45388)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45388 This undos a breaking change we're about to ship in 0.75, where Kotlin users where forced to update this callsite to be `.getEntryIterator`. This re-introduces a `entryIterator` val so both Kotlin and Java compatibility are retained. Changelog: [Android] [Fixed] - Undo breaking change for ReadableMap.entryIterator for Kotlin consumers Reviewed By: alanleedev Differential Revision: D59637925 fbshipit-source-id: b674df86e056f17791d9cabe28557529886f1c93
This commit is contained in:
committed by
Blake Friedman
parent
b1b41470e0
commit
50643a300c
+2
-2
@@ -16,6 +16,8 @@ import kotlin.collections.Map
|
||||
* Kotlin.
|
||||
*/
|
||||
public interface ReadableMap {
|
||||
public val entryIterator: Iterator<Map.Entry<String, Any>>
|
||||
|
||||
public fun getArray(name: String): ReadableArray?
|
||||
|
||||
public fun getBoolean(name: String): Boolean
|
||||
@@ -24,8 +26,6 @@ public interface ReadableMap {
|
||||
|
||||
public fun getDynamic(name: String): Dynamic
|
||||
|
||||
public fun getEntryIterator(): Iterator<Map.Entry<String, Any>>
|
||||
|
||||
public fun getInt(name: String): Int
|
||||
|
||||
public fun getLong(name: String): Long
|
||||
|
||||
+23
-23
@@ -110,36 +110,36 @@ public open class ReadableNativeMap protected constructor(hybridData: HybridData
|
||||
|
||||
override fun getDynamic(name: String): Dynamic = DynamicFromMap.create(this, name)
|
||||
|
||||
override fun getEntryIterator(): Iterator<Map.Entry<String, Any>> {
|
||||
synchronized(this) {
|
||||
val iteratorKeys = keys
|
||||
val iteratorValues = importValues()
|
||||
jniPassCounter++
|
||||
return object : Iterator<Map.Entry<String, Any>> {
|
||||
var currentIndex = 0
|
||||
override val entryIterator: Iterator<Map.Entry<String, Any>>
|
||||
get() =
|
||||
synchronized(this) {
|
||||
val iteratorKeys = keys
|
||||
val iteratorValues = importValues()
|
||||
jniPassCounter++
|
||||
return object : Iterator<Map.Entry<String, Any>> {
|
||||
var currentIndex = 0
|
||||
|
||||
override fun hasNext(): Boolean {
|
||||
return currentIndex < iteratorKeys.size
|
||||
}
|
||||
override fun hasNext(): Boolean {
|
||||
return currentIndex < iteratorKeys.size
|
||||
}
|
||||
|
||||
override fun next(): Map.Entry<String, Any> {
|
||||
val index = currentIndex++
|
||||
return object : MutableMap.MutableEntry<String, Any> {
|
||||
override val key: String
|
||||
get() = iteratorKeys[index]
|
||||
override fun next(): Map.Entry<String, Any> {
|
||||
val index = currentIndex++
|
||||
return object : MutableMap.MutableEntry<String, Any> {
|
||||
override val key: String
|
||||
get() = iteratorKeys[index]
|
||||
|
||||
override val value: Any
|
||||
get() = iteratorValues[index]
|
||||
override val value: Any
|
||||
get() = iteratorValues[index]
|
||||
|
||||
override fun setValue(newValue: Any): Any {
|
||||
throw UnsupportedOperationException(
|
||||
"Can't set a value while iterating over a ReadableNativeMap")
|
||||
override fun setValue(newValue: Any): Any {
|
||||
throw UnsupportedOperationException(
|
||||
"Can't set a value while iterating over a ReadableNativeMap")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun keySetIterator(): ReadableMapKeySetIterator {
|
||||
val iteratorKeys = keys
|
||||
|
||||
+3
-3
@@ -24,7 +24,7 @@ internal object FilterHelper {
|
||||
filters ?: return null
|
||||
var chainedEffects: RenderEffect? = null
|
||||
for (i in 0 until filters.size()) {
|
||||
val filter = filters.getMap(i).getEntryIterator().next()
|
||||
val filter = filters.getMap(i).entryIterator.next()
|
||||
val filterName = filter.key
|
||||
val amount = (filter.value as Double).toFloat()
|
||||
|
||||
@@ -51,7 +51,7 @@ internal object FilterHelper {
|
||||
// New ColorMatrix objects represent the identity matrix
|
||||
val resultColorMatrix = ColorMatrix()
|
||||
for (i in 0 until filters.size()) {
|
||||
val filter = filters.getMap(i).getEntryIterator().next()
|
||||
val filter = filters.getMap(i).entryIterator.next()
|
||||
val filterName = filter.key
|
||||
val amount = (filter.value as Double).toFloat()
|
||||
|
||||
@@ -78,7 +78,7 @@ internal object FilterHelper {
|
||||
public fun isOnlyColorMatrixFilters(filters: ReadableArray?): Boolean {
|
||||
filters ?: return false
|
||||
for (i in 0 until filters.size()) {
|
||||
val filter = filters.getMap(i).getEntryIterator().next()
|
||||
val filter = filters.getMap(i).entryIterator.next()
|
||||
val filterName = filter.key
|
||||
if (filterName == "blur") {
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user