Skip to content

Commit cdebfb6

Browse files
committed
deps: avoid compilation error with ASan
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=14221
1 parent dff4e7c commit cdebfb6

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

common.gypi

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# Reset this number to 0 on major V8 upgrades.
3838
# Increment by one for each non-official patch applied to deps/v8.
39-
'v8_embedder_string': '-node.3',
39+
'v8_embedder_string': '-node.4',
4040

4141
##### V8 defaults for Node.js #####
4242

deps/v8/src/deoptimizer/translated-state.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -2188,7 +2188,7 @@ void TranslatedState::InitializeJSObjectAt(
21882188
Handle<Object> properties = GetValueAndAdvance(frame, value_index);
21892189
WRITE_FIELD(*object_storage, JSObject::kPropertiesOrHashOffset,
21902190
*properties);
2191-
WRITE_BARRIER(*object_storage, JSObject::kPropertiesOrHashOffset,
2191+
WRITE_BARRIER_POINTER(*object_storage, JSObject::kPropertiesOrHashOffset,
21922192
*properties);
21932193
}
21942194

@@ -2205,14 +2205,14 @@ void TranslatedState::InitializeJSObjectAt(
22052205
if (marker == kStoreHeapObject) {
22062206
Handle<HeapObject> field_value = slot->storage();
22072207
WRITE_FIELD(*object_storage, offset, *field_value);
2208-
WRITE_BARRIER(*object_storage, offset, *field_value);
2208+
WRITE_BARRIER_POINTER(*object_storage, offset, *field_value);
22092209
} else {
22102210
CHECK_EQ(kStoreTagged, marker);
22112211
Handle<Object> field_value = slot->GetValue();
22122212
DCHECK_IMPLIES(field_value->IsHeapNumber(),
22132213
!IsSmiDouble(field_value->Number()));
22142214
WRITE_FIELD(*object_storage, offset, *field_value);
2215-
WRITE_BARRIER(*object_storage, offset, *field_value);
2215+
WRITE_BARRIER_POINTER(*object_storage, offset, *field_value);
22162216
}
22172217
}
22182218
object_storage->set_map(*map, kReleaseStore);
@@ -2264,7 +2264,7 @@ void TranslatedState::InitializeObjectWithTaggedFieldsAt(
22642264
!IsSmiDouble(field_value->Number()));
22652265
}
22662266
WRITE_FIELD(*object_storage, offset, *field_value);
2267-
WRITE_BARRIER(*object_storage, offset, *field_value);
2267+
WRITE_BARRIER_POINTER(*object_storage, offset, *field_value);
22682268
}
22692269

22702270
object_storage->set_map(*map, kReleaseStore);

deps/v8/src/objects/object-macros.h

+24-12
Original file line numberDiff line numberDiff line change
@@ -507,24 +507,36 @@
507507
#ifdef V8_DISABLE_WRITE_BARRIERS
508508
#define WRITE_BARRIER(object, offset, value)
509509
#else
510-
#define WRITE_BARRIER(object, offset, value) \
511-
do { \
512-
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
513-
static_assert(kTaggedCanConvertToRawObjects); \
514-
CombinedWriteBarrier(object, Tagged(object)->RawField(offset), value, \
515-
UPDATE_WRITE_BARRIER); \
510+
#define WRITE_BARRIER(object, offset, value) \
511+
do { \
512+
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
513+
static_assert(kTaggedCanConvertToRawObjects); \
514+
CombinedWriteBarrier(object, (object).RawField(offset), value, \
515+
UPDATE_WRITE_BARRIER); \
516+
} while (false)
517+
#endif
518+
519+
#ifdef V8_DISABLE_WRITE_BARRIERS
520+
#define WRITE_BARRIER_POINTER(object, offset, value)
521+
#else
522+
#define WRITE_BARRIER_POINTER(object, offset, value) \
523+
do { \
524+
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
525+
static_assert(kTaggedCanConvertToRawObjects); \
526+
CombinedWriteBarrier(object, (object)->RawField(offset), value, \
527+
UPDATE_WRITE_BARRIER); \
516528
} while (false)
517529
#endif
518530

519531
#ifdef V8_DISABLE_WRITE_BARRIERS
520532
#define WEAK_WRITE_BARRIER(object, offset, value)
521533
#else
522-
#define WEAK_WRITE_BARRIER(object, offset, value) \
523-
do { \
524-
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
525-
static_assert(kTaggedCanConvertToRawObjects); \
526-
CombinedWriteBarrier(object, Tagged(object)->RawMaybeWeakField(offset), \
527-
value, UPDATE_WRITE_BARRIER); \
534+
#define WEAK_WRITE_BARRIER(object, offset, value) \
535+
do { \
536+
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
537+
static_assert(kTaggedCanConvertToRawObjects); \
538+
CombinedWriteBarrier(object, (object).RawMaybeWeakField(offset), value, \
539+
UPDATE_WRITE_BARRIER); \
528540
} while (false)
529541
#endif
530542

0 commit comments

Comments
 (0)