This commit is contained in:
vms 2021-03-09 15:45:05 +03:00
parent e671e835a8
commit a8fbe2ca6e
8 changed files with 19 additions and 17 deletions

View File

@ -16,10 +16,12 @@ all-features = true
[lib] [lib]
path = "src/lib.rs" path = "src/lib.rs"
name = "fluence"
[dependencies] [dependencies]
fluence-sdk-macro = { path = "crates/macro", version = "=0.5.0" } fluence-sdk-macro = { path = "crates/macro", version = "=0.5.0" }
fluence-sdk-main = { path = "crates/main", version = "=0.5.0" } fluence-sdk-main = { path = "crates/main", version = "=0.5.0" }
serde = "=1.0.118"
[features] [features]
# Print some internal logs by log_utf8_string # Print some internal logs by log_utf8_string

View File

@ -31,18 +31,11 @@
)] )]
#![warn(rust_2018_idioms)] #![warn(rust_2018_idioms)]
mod call_parameters;
mod export_allocator; mod export_allocator;
#[cfg(any(feature = "debug", feature = "logger"))] #[cfg(any(feature = "debug", feature = "logger"))]
mod logger; mod logger;
pub mod mounted_binary;
mod result; mod result;
pub use call_parameters::CallParameters;
pub use call_parameters::SecurityTetraplet;
#[cfg(target_arch = "wasm32")]
pub use call_parameters::get_call_parameters;
pub use export_allocator::allocate; pub use export_allocator::allocate;
pub use export_allocator::deallocate; pub use export_allocator::deallocate;

View File

@ -71,7 +71,7 @@ fn check_record(record: &syn::ItemStruct) -> Result<()> {
{ {
return Err(Error::new( return Err(Error::new(
record.span(), record.span(),
"#[fce] couldn't be applied to a struct with generics", "#[fce] couldn't be applied to a struct with generics or lifetimes",
)); ));
} }

View File

@ -145,7 +145,9 @@ fn generate_mem_forget(
match passing_style { match passing_style {
// result will be deleted by IT side // result will be deleted by IT side
Some(PassingStyle::ByValue) => quote! { std::mem::forget(result); }, Some(PassingStyle::ByValue) => {
quote! { fluence::internal::add_object_to_release(Box::new(result)); }
}
Some(PassingStyle::ByRef) | Some(PassingStyle::ByMutRef) => { Some(PassingStyle::ByRef) | Some(PassingStyle::ByMutRef) => {
mem_forget_by_args(args, converted_args) mem_forget_by_args(args, converted_args)
} }

View File

@ -75,7 +75,7 @@ fn generate_serializer_fn(record: &fce_ast_types::AstRecordItem) -> proc_macro2:
#serializer #serializer
let raw_record_ptr = raw_record.as_ptr(); let raw_record_ptr = raw_record.as_ptr();
std::mem::forget(raw_record); fluence::internal::add_object_to_release(Box::new(raw_record));
raw_record_ptr as _ raw_record_ptr as _
} }

View File

@ -59,7 +59,7 @@ pub fn get_call_parameters() -> CallParameters {
// it's safe until it is executed on standard Fluence node with appropriate import function // it's safe until it is executed on standard Fluence node with appropriate import function
unsafe { unsafe {
get_call_raw_parameters(); get_call_raw_parameters();
let raw_call_parameters = crate::result::get_result_ptr(); let raw_call_parameters = crate::internal::get_result_ptr();
CallParameters::__fce_generated_deserialize(raw_call_parameters as _) CallParameters::__fce_generated_deserialize(raw_call_parameters as _)
} }
} }

View File

@ -67,21 +67,26 @@
)] )]
#![warn(rust_2018_idioms)] #![warn(rust_2018_idioms)]
mod call_parameters;
mod mounted_binary;
extern crate self as fluence;
pub use fluence_sdk_macro::fce; pub use fluence_sdk_macro::fce;
pub use fluence_sdk_main::CallParameters; pub use call_parameters::CallParameters;
pub use fluence_sdk_main::SecurityTetraplet; pub use call_parameters::SecurityTetraplet;
#[cfg(target_arch = "wasm32")] #[cfg(target_arch = "wasm32")]
pub use fluence_sdk_main::get_call_parameters; pub use call_parameters::get_call_parameters;
#[cfg(feature = "logger")] #[cfg(feature = "logger")]
pub use fluence_sdk_main::WasmLoggerBuilder; pub use fluence_sdk_main::WasmLoggerBuilder;
#[cfg(feature = "logger")] #[cfg(feature = "logger")]
pub use fluence_sdk_main::TargetMap; pub use fluence_sdk_main::TargetMap;
pub use fluence_sdk_main::mounted_binary::Result as MountedBinaryResult; pub use mounted_binary::Result as MountedBinaryResult;
pub use fluence_sdk_main::mounted_binary::StringResult as MountedBinaryStringResult; pub use mounted_binary::StringResult as MountedBinaryStringResult;
pub use fluence_sdk_main::mounted_binary::SUCCESS_CODE as BINARY_SUCCESS_CODE; pub use mounted_binary::SUCCESS_CODE as BINARY_SUCCESS_CODE;
/// These API functions are intended for internal usage in generated code. /// These API functions are intended for internal usage in generated code.
/// Normally, you shouldn't use them. /// Normally, you shouldn't use them.