Skip to content

Commit 620c387

Browse files
committed
Revert "Name asm context pointer"
This reverts commit f3cbc8d.
1 parent 9d85391 commit 620c387

File tree

2 files changed

+15
-16
lines changed

2 files changed

+15
-16
lines changed

Zend/zend_fibers.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,15 @@ static zend_object_handlers zend_fiber_handlers;
6666

6767
static zend_function zend_fiber_function = { ZEND_INTERNAL_FUNCTION };
6868

69-
typedef struct _zend_fiber_transfer {
70-
zend_fiber_asm_handle handle;
71-
zend_fiber_context *previous;
72-
} zend_fiber_transfer;
69+
typedef void *fcontext_t;
7370

74-
extern zend_fiber_asm_handle make_fcontext(void *sp, size_t size, void (*fn)(zend_fiber_transfer));
75-
extern zend_fiber_transfer jump_fcontext(zend_fiber_asm_handle to, zend_fiber_context *previous);
71+
typedef struct _transfer_t {
72+
fcontext_t context;
73+
void *data;
74+
} transfer_t;
75+
76+
extern fcontext_t make_fcontext(void *sp, size_t size, void (*fn)(transfer_t));
77+
extern transfer_t jump_fcontext(fcontext_t to, void *vp);
7678

7779
#define ZEND_FIBER_DEFAULT_PAGE_SIZE 4096
7880

@@ -179,12 +181,12 @@ static void zend_fiber_stack_free(zend_fiber_stack *stack)
179181
stack->pointer = NULL;
180182
}
181183

182-
static ZEND_NORETURN void zend_fiber_trampoline(zend_fiber_transfer transfer)
184+
static ZEND_NORETURN void zend_fiber_trampoline(transfer_t transfer)
183185
{
184186
zend_fiber_context *context = EG(current_fiber);
185-
zend_fiber_context *from = transfer.previous;
187+
zend_fiber_context *from = transfer.data;
186188

187-
from->handle = transfer.handle;
189+
from->handle = transfer.context;
188190

189191
#ifdef __SANITIZE_ADDRESS__
190192
__sanitizer_finish_switch_fiber(NULL, &from->stack.prior_pointer, &from->stack.prior_size);
@@ -252,16 +254,16 @@ ZEND_API zend_fiber_context *zend_fiber_switch_context(zend_fiber_context *to)
252254
to->stack.prior_size);
253255
#endif
254256

255-
zend_fiber_transfer transfer = jump_fcontext(to->handle, from);
257+
transfer_t transfer = jump_fcontext(to->handle, from);
256258

257259
#ifdef __SANITIZE_ADDRESS__
258260
__sanitizer_finish_switch_fiber(fake_stack, &to->stack.prior_pointer, &to->stack.prior_size);
259261
#endif
260262

261263
EG(current_fiber) = from;
262264

263-
zend_fiber_context *previous = transfer.previous;
264-
previous->handle = transfer.handle;
265+
zend_fiber_context *previous = transfer.data;
266+
previous->handle = transfer.context;
265267

266268
zend_fiber_restore_vm_state(&state);
267269

Zend/zend_fibers.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,9 @@ typedef struct _zend_fiber_context zend_fiber_context;
7070
/* Coroutine functions must return a fiber context to switch to after they are finished. */
7171
typedef zend_fiber_context *(*zend_fiber_coroutine)(zend_fiber_context *context);
7272

73-
/* Context handle used for asm context jumps. */
74-
typedef void *zend_fiber_asm_handle;
75-
7673
/* Defined as a macro to allow anonymous embedding. */
7774
#define ZEND_FIBER_CONTEXT_FIELDS \
78-
zend_fiber_asm_handle handle; \
75+
void *handle; \
7976
zend_fiber_coroutine function; \
8077
zend_fiber_stack stack; \
8178
zend_fiber_status status; \

0 commit comments

Comments
 (0)