5#ifndef RUNTIME_BIN_DFE_H_
6#define RUNTIME_BIN_DFE_H_
35 if (frontend_filename_ !=
nullptr) {
36 free(frontend_filename_);
45 use_incremental_compiler_ =
value;
61 application_kernel_buffer_ =
buffer;
62 application_kernel_buffer_size_ = size;
65 *
buffer = application_kernel_buffer_;
66 *size = application_kernel_buffer_size_;
76 const char* package_config,
88 uint8_t** kernel_buffer,
89 intptr_t* kernel_buffer_size,
92 const char* package_config,
106 uint8_t** kernel_buffer,
107 intptr_t* kernel_buffer_size,
108 bool decode_uri =
true,
109 std::shared_ptr<uint8_t>* kernel_blob_ptr =
nullptr);
124 uint8_t** kernel_buffer,
125 intptr_t* kernel_buffer_size,
126 bool decode_uri =
true,
127 std::shared_ptr<uint8_t>* kernel_blob_ptr =
nullptr);
136 intptr_t* kernel_buffer_size);
138 intptr_t* kernel_service_buffer_size);
145 intptr_t kernel_buffer_size);
151 intptr_t* kernel_length);
158 bool use_incremental_compiler_;
159 char* frontend_filename_;
164 uint8_t* application_kernel_buffer_;
165 intptr_t application_kernel_buffer_size_;
169 intptr_t kernel_blob_counter_ = 0;
170 Mutex kernel_blobs_lock_;
172 void InitKernelServiceAndPlatformDills();
183 std::shared_ptr<uint8_t>
buffer() {
return buffer_; }
184 intptr_t
size()
const {
return size_; }
188 std::shared_ptr<uint8_t> buffer_;
189 const intptr_t size_;
200#if defined(DART_HOST_OS_WINDOWS)
201 std::unique_ptr<char[]> sanitized_uri_;
203 const char* sanitized_uri_;
209#if !defined(DART_PRECOMPILED_RUNTIME)
static char * StrDup(const char *s)
std::unique_ptr< char, decltype(std::free) * > CStringUniquePtr
bool TryReadKernelFile(const char *script_uri, const AppSnapshot *app_snapshot, uint8_t **kernel_buffer, intptr_t *kernel_buffer_size, bool decode_uri=true, std::shared_ptr< uint8_t > *kernel_blob_ptr=nullptr)
void CompileAndReadScript(const char *script_uri, uint8_t **kernel_buffer, intptr_t *kernel_buffer_size, char **error, int *exit_code, const char *package_config, bool for_snapshot, bool embed_sources)
bool CanUseDartFrontend() const
void set_use_dfe(bool value=true)
std::shared_ptr< uint8_t > TryFindKernelBlob(const char *uri, intptr_t *kernel_length)
const char * GetPlatformBinaryFilename()
void set_verbosity(Dart_KernelCompilationVerbosityLevel verbosity)
Dart_KernelCompilationVerbosityLevel verbosity() const
void set_frontend_filename(const char *name)
void set_application_kernel_buffer(uint8_t *buffer, intptr_t size)
void set_use_incremental_compiler(bool value)
bool UseDartFrontend() const
bool use_incremental_compiler() const
void LoadPlatform(const uint8_t **kernel_buffer, intptr_t *kernel_buffer_size)
const char * RegisterKernelBlob(const uint8_t *kernel_buffer, intptr_t kernel_buffer_size)
Dart_KernelCompilationResult CompileScript(const char *script_uri, bool incremental, const char *package_config, bool for_snapshot, bool embedd_sources)
bool KernelServiceDillAvailable() const
void application_kernel_buffer(const uint8_t **buffer, intptr_t *size) const
void UnregisterKernelBlob(const char *uri)
void ReadScript(const char *script_uri, const AppSnapshot *app_snapshot, uint8_t **kernel_buffer, intptr_t *kernel_buffer_size, bool decode_uri=true, std::shared_ptr< uint8_t > *kernel_blob_ptr=nullptr)
void LoadKernelService(const uint8_t **kernel_service_buffer, intptr_t *kernel_service_buffer_size)
char * frontend_filename() const
KernelBlob(char *uri, uint8_t *buffer, intptr_t size)
std::shared_ptr< uint8_t > buffer()
const char * sanitized_uri() const
Dart_KernelCompilationVerbosityLevel
@ Dart_KernelCompilationVerbosityLevel_All
static const uint8_t buffer[]
const uint8_t uint32_t uint32_t GError ** error