Skip to content

Commit 3ce29c4

Browse files
Kendall Hopkinsmeta-codesync[bot]
authored andcommitted
No longer use the output of set_implicit_context_by_value
Summary: Setting up for making it return void Reviewed By: jano Differential Revision: D95288910 fbshipit-source-id: 84f3fae2e474cfd6c289d9b9f87b3f9ad697eb30
1 parent fcd3b5c commit 3ce29c4

1 file changed

Lines changed: 20 additions & 12 deletions

File tree

hphp/runtime/ext/hh/ext_implicit_context.php

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,9 @@ abstract class MemoAgnosticImplicitContext extends ImplicitContextBase {
225225
this::TData $context,
226226
(function ()[_]: Awaitable<Tout>) $f,
227227
)[leak_safe, ctx $f]: Awaitable<Tout> {
228-
$prev = ImplicitContext\_Private\set_implicit_context_by_value(
229-
self::createContext($context)
228+
$prev = ImplicitContext\_Private\get_whole_implicit_context();
229+
ImplicitContext\_Private\set_implicit_context_by_value(
230+
self::createContext($prev, $context)
230231
);
231232
try {
232233
$result = $f();
@@ -242,8 +243,9 @@ final protected static function runWith<Tout>(
242243
this::TData $context,
243244
(function ()[_]: Tout) $f,
244245
)[leak_safe, ctx $f]: Tout {
245-
$prev = ImplicitContext\_Private\set_implicit_context_by_value(
246-
self::createContext($context)
246+
$prev = ImplicitContext\_Private\get_whole_implicit_context();
247+
ImplicitContext\_Private\set_implicit_context_by_value(
248+
self::createContext($prev, $context)
247249
);
248250
try {
249251
return $f();
@@ -262,10 +264,11 @@ final protected static function prepare(
262264
}
263265

264266
private static function createContext(
267+
ImplicitContext\_Private\ImplicitContextData $ic,
265268
this::TData $context,
266269
)[leak_safe]: ImplicitContext\_Private\ImplicitContextData {
267270
return ImplicitContext\_Private\set_memo_agnostic(
268-
ImplicitContext\_Private\get_whole_implicit_context(),
271+
$ic,
269272
static::class,
270273
$context,
271274
);
@@ -279,8 +282,9 @@ abstract class MemoSensitiveImplicitContext extends ImplicitContextBase {
279282
this::TData $context,
280283
(function ()[_]: Awaitable<Tout>) $f,
281284
)[leak_safe, ctx $f]: Awaitable<Tout> {
282-
$prev = ImplicitContext\_Private\set_implicit_context_by_value(
283-
self::createContext($context)
285+
$prev = ImplicitContext\_Private\get_whole_implicit_context();
286+
ImplicitContext\_Private\set_implicit_context_by_value(
287+
self::createContext($prev, $context),
284288
);
285289
try {
286290
$result = $f();
@@ -296,8 +300,9 @@ final protected static function runWith<Tout>(
296300
this::TData $context,
297301
(function ()[_]: Tout) $f,
298302
)[leak_safe, ctx $f]: Tout {
299-
$prev = ImplicitContext\_Private\set_implicit_context_by_value(
300-
self::createContext($context)
303+
$prev = ImplicitContext\_Private\get_whole_implicit_context();
304+
ImplicitContext\_Private\set_implicit_context_by_value(
305+
self::createContext($prev, $context),
301306
);
302307
try {
303308
return $f();
@@ -316,10 +321,11 @@ final protected static function prepare(
316321
}
317322

318323
private static function createContext(
324+
ImplicitContext\_Private\ImplicitContextData $ic,
319325
this::TData $context,
320326
)[leak_safe]: ImplicitContext\_Private\ImplicitContextData {
321327
return ImplicitContext\_Private\set_memo_sensitive(
322-
ImplicitContext\_Private\get_whole_implicit_context(),
328+
$ic,
323329
static::class,
324330
$context,
325331
$context->getInstanceKey(),
@@ -377,7 +383,8 @@ enum class MemoizeOption: string {
377383
function backdoor<Tout>(
378384
(function()[defaults]: Tout) $fn
379385
)[/* 86backdoor */]: Tout {
380-
$prev = \HH\ImplicitContext\_Private\set_implicit_context_by_value(
386+
$prev = \HH\ImplicitContext\_Private\get_whole_implicit_context();
387+
\HH\ImplicitContext\_Private\set_implicit_context_by_value(
381388
\HH\ImplicitContext\_Private\get_memo_agnostic_implicit_context(),
382389
);
383390
try {
@@ -394,7 +401,8 @@ function backdoor<Tout>(
394401
async function backdoor_async<Tout>(
395402
(function()[defaults]: Awaitable<Tout>) $fn
396403
)[/* 86backdoor */]: Awaitable<Tout> {
397-
$prev = \HH\ImplicitContext\_Private\set_implicit_context_by_value(
404+
$prev = \HH\ImplicitContext\_Private\get_whole_implicit_context();
405+
\HH\ImplicitContext\_Private\set_implicit_context_by_value(
398406
\HH\ImplicitContext\_Private\get_memo_agnostic_implicit_context()
399407
);
400408
try {

0 commit comments

Comments
 (0)