File: test_get_exported_function.cpp

package info (click to toggle)
emscripten 3.1.69%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 121,860 kB
  • sloc: ansic: 636,110; cpp: 425,974; javascript: 78,401; python: 58,404; sh: 49,154; pascal: 5,237; makefile: 3,366; asm: 2,415; lisp: 1,869
file content (27 lines) | stat: -rw-r--r-- 604 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <emscripten/emscripten.h>
#include <emscripten/console.h>
#include <emscripten/exports.h>

extern "C" EMSCRIPTEN_KEEPALIVE int foo()
{
	return 1;
}

extern "C" EMSCRIPTEN_KEEPALIVE int bar()
{
	return 2;
}

typedef int (*intfunc)();

int main()
{
	intfunc f = (intfunc)emscripten_get_exported_function("_foo");
	intfunc b = (intfunc)emscripten_get_exported_function("_bar");
	emscripten_outf("%d %d", f(), b());

	// Obtaining the same function pointer twice should return the
	// same address.
	intfunc b2 = (intfunc)emscripten_get_exported_function("_bar");
	emscripten_outf("%d", b == b2);
}