Skip to content

Commit ec4bc8e

Browse files
committed
Fix std::length_error: vector
SOLUTION: Clearing the cache fixed the issue ([comment](pyg-team/pytorch_geometric#4419 (comment))). The user was experiencing similar issue on arm64. It reports errors that result from attempts to exceed implementation defined length limits for some object ([link](https://en.cppreference.com/w/cpp/error/length_error)). "Adding a string prop to TextAttributes.cpp: Read error message with Android Studio ([screenshot](https://www.icloud.com/iclouddrive/053tE1XWF0rgVUMxmLhUJTJUA#terminating_std_length_error_vector)) Search online for the error message and understand the configuration mistake in the cpp type ([link](https://www.google.com/search?q=terminating+with+uncaught+exception+of+type+std::length_error:+vector))
terminating with uncaught exception of type std::length_error: vector Verify all changes from [#2](https://github.com/fabriziobertoglio1987/react-native/pull/2/files) are added in [#3](https://github.com/fabriziobertoglio1987/react-native/pull/3/files)
Verify there are no mistakes in the types Read about APIs that you added to cpp Read complete logcat errors Does it build only with the Java Changes?
Commit the java changes and stash cpp
The error std::length_error: vector indicates wrong cpp type
1 parent c0fbafd commit ec4bc8e

File tree

12 files changed

+22
-28
lines changed

12 files changed

+22
-28
lines changed

Libraries/Components/View/ViewPropTypes.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ export type ViewProps = $ReadOnly<{|
502502
* Indicates to accessibility services that UI Component is in a specific State.
503503
*/
504504
accessibilityState?: ?AccessibilityState,
505-
accessibilityUnit?: ?AccessibilityUnit,
505+
accessibilityUnit?: ?Stringish,
506506
accessibilityValue?: ?AccessibilityValue,
507507

508508
/**

ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ public void setViewState(@NonNull T view, @Nullable ReadableMap accessibilitySta
320320

321321
@Override
322322
@ReactProp(name = ViewProps.ACCESSIBILITY_UNIT)
323-
public void setAccessibilityUnit(@NonNull T view, @Nullable ReadableMap accessibilityUnit) {
323+
public void setAccessibilityUnit(@NonNull T view, @Nullable String accessibilityUnit) {
324324
// do nothing
325325
}
326326

ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void setAccessibilityCollectionItem(
4343
public void setViewState(@NonNull T view, @Nullable ReadableMap accessibilityState) {}
4444

4545
@Override
46-
public void setAccessibilityUnit(@NonNull T view, @Nullable ReadableMap accessibilityUnit) {}
46+
public void setAccessibilityUnit(@NonNull T view, @Nullable String accessibilityUnit) {}
4747

4848
@Override
4949
public void setBackgroundColor(@NonNull T view, int backgroundColor) {}

ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public interface BaseViewManagerInterface<T extends View> {
3434

3535
void setViewState(T view, @Nullable ReadableMap accessibilityState);
3636

37-
void setAccessibilityUnit(T view, @Nullable ReadableMap accessibilityUnit);
37+
void setAccessibilityUnit(T view, @Nullable String accessibilityUnit);
3838

3939
void setBackgroundColor(T view, int backgroundColor);
4040

ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,12 @@
1212
import android.text.Spannable;
1313
import android.text.TextUtils;
1414
import android.text.util.Linkify;
15-
import android.util.Log;
1615
import android.view.Gravity;
1716
import android.view.View;
1817
import androidx.annotation.NonNull;
1918
import androidx.annotation.Nullable;
2019
import com.facebook.common.logging.FLog;
2120
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
22-
import com.facebook.react.bridge.ReadableMap;
2321
import com.facebook.react.uimanager.BaseViewManager;
2422
import com.facebook.react.uimanager.PixelUtil;
2523
import com.facebook.react.uimanager.Spacing;
@@ -53,9 +51,8 @@ public void setAccessible(ReactTextView view, boolean accessible) {
5351

5452
@Override
5553
@ReactProp(name = ViewProps.ACCESSIBILITY_UNIT)
56-
public void setAccessibilityUnit(@NonNull T view, @Nullable ReadableMap accessibilityUnit) {
57-
Log.w("TESTING::ReactTextAnchorViewManager", "setAccessibilityUnit");
58-
Log.w("TESTING::ReactTextAnchorViewManager", "accessibilityUnit: " + (accessibilityUnit));
54+
public void setAccessibilityUnit(@NonNull T view, @Nullable String accessibilityUnit) {
55+
// do nothing
5956
}
6057

6158
// maxLines can only be set in master view (block), doesn't really make sense to set in a span

ReactAndroid/src/main/java/com/facebook/react/views/view/ReactMapBufferPropSetter.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ object ReactMapBufferPropSetter {
133133
viewManager.accessibilityState(view, entry.mapBufferValue)
134134
}
135135
VP_ACCESSIBILITY_UNIT -> {
136-
viewManager.accessibilityUnit(view, entry.mapBufferValue)
136+
viewManager.accessibilityUnit(view, entry.stringValue)
137137
}
138138
VP_ACCESSIBILITY_VALUE -> {
139139
viewManager.accessibilityValue(view, entry.stringValue)
@@ -283,12 +283,13 @@ object ReactMapBufferPropSetter {
283283
ViewCompat.setAccessibilityLiveRegion(this, mode)
284284
}
285285

286-
private fun ReactViewManager.accessibilityUnit(view: ReactViewGroup, value: MapBuffer) {
286+
private fun ReactViewManager.accessibilityUnit(view: ReactViewGroup, value: String) {
287287
Log.w("TESTING::ReactMapBufferPropSetter", "accessibilityUnit");
288+
/*
288289
val accessibilityUnit = JavaOnlyMap()
289290
accessibilityUnit.putString("hours", "10")
290-
291291
setAccessibilityUnit(view, accessibilityUnit)
292+
*/
292293
}
293294

294295
private fun ReactViewManager.accessibilityState(view: ReactViewGroup, value: MapBuffer) {

ReactCommon/react/renderer/attributedstring/TextAttributes.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ void TextAttributes::apply(TextAttributes textAttributes) {
9898
accessibilityRole = textAttributes.accessibilityRole.has_value()
9999
? textAttributes.accessibilityRole
100100
: accessibilityRole;
101+
accessibilityUnit = !textAttributes.accessibilityUnit.empty() ? textAttributes.accessibilityUnit
102+
: accessibilityUnit;
101103
}
102104

103105
#pragma mark - Operators
@@ -122,6 +124,7 @@ bool TextAttributes::operator==(const TextAttributes &rhs) const {
122124
isHighlighted,
123125
layoutDirection,
124126
accessibilityRole,
127+
accessibilityUnit,
125128
textTransform) ==
126129
std::tie(
127130
rhs.foregroundColor,
@@ -142,6 +145,7 @@ bool TextAttributes::operator==(const TextAttributes &rhs) const {
142145
rhs.isHighlighted,
143146
rhs.layoutDirection,
144147
rhs.accessibilityRole,
148+
rhs.accessibilityUnit,
145149
rhs.textTransform) &&
146150
floatEquality(opacity, rhs.opacity) &&
147151
floatEquality(fontSize, rhs.fontSize) &&
@@ -209,6 +213,7 @@ SharedDebugStringConvertibleList TextAttributes::getDebugProps() const {
209213
debugStringConvertibleItem("isHighlighted", isHighlighted),
210214
debugStringConvertibleItem("layoutDirection", layoutDirection),
211215
debugStringConvertibleItem("accessibilityRole", accessibilityRole),
216+
debugStringConvertibleItem("accessibilityUnit", accessibilityUnit),
212217
};
213218
}
214219
#endif

ReactCommon/react/renderer/attributedstring/TextAttributes.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class TextAttributes : public DebugStringConvertible {
7979
// construction.
8080
std::optional<LayoutDirection> layoutDirection{};
8181
std::optional<AccessibilityRole> accessibilityRole{};
82+
std::string accessibilityUnit{""};
8283

8384
#pragma mark - Operations
8485

@@ -131,7 +132,8 @@ struct hash<facebook::react::TextAttributes> {
131132
textAttributes.textShadowColor,
132133
textAttributes.isHighlighted,
133134
textAttributes.layoutDirection,
134-
textAttributes.accessibilityRole);
135+
textAttributes.accessibilityRole,
136+
textAttributes.accessibilityUnit);
135137
}
136138
};
137139
} // namespace std

ReactCommon/react/renderer/components/view/AccessibilityProps.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class AccessibilityProps {
3939

4040
bool accessible{false};
4141
AccessibilityState accessibilityState;
42-
AccessibilityUnit accessibilityUnit;
42+
std::string accessibilityUnit{"1"};
4343
std::string accessibilityLabel{""};
4444
AccessibilityLabelledBy accessibilityLabelledBy{};
4545
AccessibilityLiveRegion accessibilityLiveRegion{

ReactCommon/react/renderer/components/view/AccessibilityPropsMapBuffer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ void AccessibilityProps::propsDiffMapBuffer(
141141
}
142142

143143
if (oldProps.accessibilityUnit != newProps.accessibilityUnit) {
144-
builder.putMapBuffer(
144+
builder.putString(
145145
AP_ACCESSIBILITY_UNIT,
146-
convertAccessibilityUnit(newProps.accessibilityUnit));
146+
"10");
147147
}
148148

149149
if (oldProps.accessibilityValue != newProps.accessibilityValue) {

ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -170,17 +170,6 @@ inline void fromRawValue(
170170
}
171171
}
172172

173-
inline void fromRawValue(
174-
const PropsParserContext &context,
175-
const RawValue &value,
176-
AccessibilityUnit &result) {
177-
auto map = (butter::map<std::string, RawValue>)value;
178-
auto hours = map.find("hours");
179-
if (hours != map.end()) {
180-
fromRawValue(context, hours->second, result.hours);
181-
}
182-
}
183-
184173
inline std::string toString(
185174
const ImportantForAccessibility &importantForAccessibility) {
186175
switch (importantForAccessibility) {

packages/rn-tester/js/examples/Accessibility/AccessibilityExample.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ class AccessibilityExample extends React.Component<{}> {
172172
My number is
173173
<Text
174174
accessibilityRole="time"
175-
accessibilityUnit={{hours: '30'}}
175+
accessibilityUnit="an example of prop"
176176
accessible={true}
177177
style={{backgroundColor: 'red'}}>
178178
17:00

0 commit comments

Comments
 (0)