View difference between Paste ID: 6VUtVTu3 and MzrnZq6t
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
3
#include "black_magic.h"
4
5
6
typedef int (*func) (void *, void *, size_t);
7
8
#define NFUNCS 3
9
10
int f0(void *dst, void *src, size_t n) { ... }
11
int f1(void *dst, void *src, size_t n) { ... }
12
int f2(void *dst, void *src, size_t n) { ... }
13
14
func funcs[NFUNCS] = {
15
    f0, f1, f2
16
};
17
18
19
int _wrapper(void *dst, void *src, size_t n)
20
{
21
    printf("%p %p %lu\n", dst, src, n);
22-
    return ((func)black_magic_get_wrapper())(dst, src, n);
22+
    return ((func)black_magic_get_wrapped())(dst, src, n);
23
}
24
25
26
void init()
27
{
28
    for (int i = 0; i < NFUNCS; i++) {
29
        black_magic_wrap(funcs[i], _wrapper);
30
    }
31
}
32
33
34
int main(void)
35
{
36
    int x = 13;
37
    int y;
38
    
39
	init();
40
41
    ((func)(funcs[1]))(&y, &x, sizeof(int));
42
    
43
    return 0;
44
}
45