Allow wide tv_val and arbitrary layout for object-data properties
commitee7fa54e13295fff7e8dfd5c0e0ad44de21111aa
authorJoseph Griego <jgriego@fb.com>
Fri, 6 Dec 2019 16:12:10 +0000 (6 08:12 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Fri, 6 Dec 2019 16:18:25 +0000 (6 08:18 -0800)
tree14b445055f1f2e722174b4b480b0c7d7072f3f76
parent4656f3984936422473196b0c9433a0c270808a5d
Allow wide tv_val and arbitrary layout for object-data properties

Summary:
This introduces the notion of a specific layout for object data
properties--for now there's only a `TvArray` layout that duplicates the current
layout where a bunch of `TypedValue`s are stored off the end of the ObjectData.

The interface is designed to be amenable to alternate storage layouts

Differential Revision: D18643771

fbshipit-source-id: 15027dcf0dac90f941a171f99773e4d01f7df785
17 files changed:
hphp/runtime/base/apc-object.cpp
hphp/runtime/base/heap-scan.h
hphp/runtime/base/object-data-inl.h
hphp/runtime/base/object-data.cpp
hphp/runtime/base/object-data.h
hphp/runtime/base/tv-layout.h [new file with mode: 0644]
hphp/runtime/base/tv-val.h
hphp/runtime/base/variable-unserializer.cpp
hphp/runtime/ext/std/ext_std_closure.cpp
hphp/runtime/ext/thrift/binary.cpp
hphp/runtime/ext/thrift/compact.cpp
hphp/runtime/vm/class.h
hphp/runtime/vm/jit/irlower-closure.cpp
hphp/runtime/vm/jit/irlower-load-store.cpp
hphp/runtime/vm/native-data.cpp
hphp/runtime/vm/reified-generics.cpp
hphp/util/type-traits.h