Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Macros | Functions
ffi_test_dynamic_library.cc File Reference
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>

Go to the source code of this file.

Classes

struct  some_resource
 

Macros

#define DART_EXPORT    extern "C" __attribute__((visibility("default"))) __attribute((used))
 

Functions

DART_EXPORT intptr_t return42 ()
 
DART_EXPORT double timesFour (double d)
 
DART_EXPORT void MemMove (void *destination, void *source, intptr_t num_bytes)
 
DART_EXPORT some_resourceAllocateResource ()
 
DART_EXPORT void UseResource (some_resource *resource)
 
DART_EXPORT void ReleaseResource (some_resource *resource)
 

Macro Definition Documentation

◆ DART_EXPORT

#define DART_EXPORT    extern "C" __attribute__((visibility("default"))) __attribute((used))

Definition at line 13 of file ffi_test_dynamic_library.cc.

17 {
18 return 42;
19}
20
21DART_EXPORT double timesFour(double d) {
22 return d * 4.0;
23}
24
25// Wrap memmove so we can easily find it on all platforms.
26//
27// We use this in our samples to illustrate resource lifetime management.
28DART_EXPORT void MemMove(void* destination, void* source, intptr_t num_bytes) {
29 memmove(destination, source, num_bytes);
30}
31
32// Some opaque struct.
33typedef struct {
35
37 void* pointer = malloc(sizeof(int64_t));
38
39 // Dummy initialize.
40 static_cast<int64_t*>(pointer)[0] = 10;
41
42 return static_cast<some_resource*>(pointer);
43}
44
46 // Dummy change.
47 reinterpret_cast<int64_t*>(resource)[0] += 10;
48}
49
51 free(resource);
52}
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
Definition main.cc:19
SkBitmap source
Definition examples.cpp:28
DART_EXPORT void UseResource(some_resource *resource)
DART_EXPORT void ReleaseResource(some_resource *resource)
DART_EXPORT void MemMove(void *destination, void *source, intptr_t num_bytes)
DART_EXPORT double timesFour(double d)
DART_EXPORT some_resource * AllocateResource()
#define DART_EXPORT
void * malloc(size_t size)
Definition allocation.cc:19

Function Documentation

◆ AllocateResource()

DART_EXPORT some_resource * AllocateResource ( )

Definition at line 36 of file ffi_test_dynamic_library.cc.

36 {
37 void* pointer = malloc(sizeof(int64_t));
38
39 // Dummy initialize.
40 static_cast<int64_t*>(pointer)[0] = 10;
41
42 return static_cast<some_resource*>(pointer);
43}

◆ MemMove()

DART_EXPORT void MemMove ( void *  destination,
void *  source,
intptr_t  num_bytes 
)

Definition at line 28 of file ffi_test_dynamic_library.cc.

28 {
29 memmove(destination, source, num_bytes);
30}

◆ ReleaseResource()

DART_EXPORT void ReleaseResource ( some_resource resource)

Definition at line 50 of file ffi_test_dynamic_library.cc.

50 {
51 free(resource);
52}

◆ return42()

DART_EXPORT intptr_t return42 ( )

Definition at line 17 of file ffi_test_dynamic_library.cc.

17 {
18 return 42;
19}

◆ timesFour()

DART_EXPORT double timesFour ( double  d)

Definition at line 21 of file ffi_test_dynamic_library.cc.

21 {
22 return d * 4.0;
23}

◆ UseResource()

DART_EXPORT void UseResource ( some_resource resource)

Definition at line 45 of file ffi_test_dynamic_library.cc.

45 {
46 // Dummy change.
47 reinterpret_cast<int64_t*>(resource)[0] += 10;
48}