Skip to content

Commit

Permalink
deps: avoid compilation error with ASan
Browse files Browse the repository at this point in the history
  • Loading branch information
targos committed Jul 31, 2023
1 parent dff4e7c commit cdebfb6
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 17 deletions.
2 changes: 1 addition & 1 deletion common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

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

##### V8 defaults for Node.js #####

Expand Down
8 changes: 4 additions & 4 deletions deps/v8/src/deoptimizer/translated-state.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2188,7 +2188,7 @@ void TranslatedState::InitializeJSObjectAt(
Handle<Object> properties = GetValueAndAdvance(frame, value_index);
WRITE_FIELD(*object_storage, JSObject::kPropertiesOrHashOffset,
*properties);
WRITE_BARRIER(*object_storage, JSObject::kPropertiesOrHashOffset,
WRITE_BARRIER_POINTER(*object_storage, JSObject::kPropertiesOrHashOffset,
*properties);
}

Expand All @@ -2205,14 +2205,14 @@ void TranslatedState::InitializeJSObjectAt(
if (marker == kStoreHeapObject) {
Handle<HeapObject> field_value = slot->storage();
WRITE_FIELD(*object_storage, offset, *field_value);
WRITE_BARRIER(*object_storage, offset, *field_value);
WRITE_BARRIER_POINTER(*object_storage, offset, *field_value);
} else {
CHECK_EQ(kStoreTagged, marker);
Handle<Object> field_value = slot->GetValue();
DCHECK_IMPLIES(field_value->IsHeapNumber(),
!IsSmiDouble(field_value->Number()));
WRITE_FIELD(*object_storage, offset, *field_value);
WRITE_BARRIER(*object_storage, offset, *field_value);
WRITE_BARRIER_POINTER(*object_storage, offset, *field_value);
}
}
object_storage->set_map(*map, kReleaseStore);
Expand Down Expand Up @@ -2264,7 +2264,7 @@ void TranslatedState::InitializeObjectWithTaggedFieldsAt(
!IsSmiDouble(field_value->Number()));
}
WRITE_FIELD(*object_storage, offset, *field_value);
WRITE_BARRIER(*object_storage, offset, *field_value);
WRITE_BARRIER_POINTER(*object_storage, offset, *field_value);
}

object_storage->set_map(*map, kReleaseStore);
Expand Down
36 changes: 24 additions & 12 deletions deps/v8/src/objects/object-macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -507,24 +507,36 @@
#ifdef V8_DISABLE_WRITE_BARRIERS
#define WRITE_BARRIER(object, offset, value)
#else
#define WRITE_BARRIER(object, offset, value) \
do { \
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
static_assert(kTaggedCanConvertToRawObjects); \
CombinedWriteBarrier(object, Tagged(object)->RawField(offset), value, \
UPDATE_WRITE_BARRIER); \
#define WRITE_BARRIER(object, offset, value) \
do { \
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
static_assert(kTaggedCanConvertToRawObjects); \
CombinedWriteBarrier(object, (object).RawField(offset), value, \
UPDATE_WRITE_BARRIER); \
} while (false)
#endif

#ifdef V8_DISABLE_WRITE_BARRIERS
#define WRITE_BARRIER_POINTER(object, offset, value)
#else
#define WRITE_BARRIER_POINTER(object, offset, value) \
do { \
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
static_assert(kTaggedCanConvertToRawObjects); \
CombinedWriteBarrier(object, (object)->RawField(offset), value, \
UPDATE_WRITE_BARRIER); \
} while (false)
#endif

#ifdef V8_DISABLE_WRITE_BARRIERS
#define WEAK_WRITE_BARRIER(object, offset, value)
#else
#define WEAK_WRITE_BARRIER(object, offset, value) \
do { \
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
static_assert(kTaggedCanConvertToRawObjects); \
CombinedWriteBarrier(object, Tagged(object)->RawMaybeWeakField(offset), \
value, UPDATE_WRITE_BARRIER); \
#define WEAK_WRITE_BARRIER(object, offset, value) \
do { \
DCHECK_NOT_NULL(GetHeapFromWritableObject(object)); \
static_assert(kTaggedCanConvertToRawObjects); \
CombinedWriteBarrier(object, (object).RawMaybeWeakField(offset), value, \
UPDATE_WRITE_BARRIER); \
} while (false)
#endif

Expand Down

0 comments on commit cdebfb6

Please sign in to comment.