Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(940)

Unified Diff: mojo/dart/embedder/io/filter.cc

Issue 1786473004: Rolls Dart runtime forward. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: whitespace Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/dart/embedder/io/filter.h ('k') | mojo/dart/embedder/io/filter_patch.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/dart/embedder/io/filter.cc
diff --git a/mojo/dart/embedder/io/filter.cc b/mojo/dart/embedder/io/filter.cc
index b4c0eda3a059f031b354715e39f7103bc585d723..fb1b2f7af16072e8780f7cca23201001926c7116 100644
--- a/mojo/dart/embedder/io/filter.cc
+++ b/mojo/dart/embedder/io/filter.cc
@@ -12,31 +12,47 @@ const int kZLibFlagAcceptAnyHeader = 32;
static const int kFilterPointerNativeField = 0;
-Dart_Handle Filter::SetFilterPointerNativeField(Dart_Handle filter,
- Filter* filter_pointer) {
- return Dart_SetNativeInstanceField(
+static void DeleteFilter(
+ void* isolate_data,
+ Dart_WeakPersistentHandle handle,
+ void* filter_pointer) {
+ Filter* filter = reinterpret_cast<Filter*>(filter_pointer);
+ delete filter;
+}
+
+Dart_Handle Filter::SetFilterAndCreateFinalizer(Dart_Handle filter,
+ Filter* filter_pointer,
+ intptr_t size) {
+ Dart_Handle err = Dart_SetNativeInstanceField(
filter,
kFilterPointerNativeField,
reinterpret_cast<intptr_t>(filter_pointer));
+ if (Dart_IsError(err)) {
+ return err;
+ }
+ Dart_NewWeakPersistentHandle(filter,
+ reinterpret_cast<void*>(filter_pointer),
+ size,
+ DeleteFilter);
+ return err;
}
-
-Dart_Handle Filter::GetFilterPointerNativeField(Dart_Handle filter,
- Filter** filter_pointer) {
+Dart_Handle Filter::GetFilterNativeField(Dart_Handle filter,
+ Filter** filter_pointer) {
return Dart_GetNativeInstanceField(
filter,
kFilterPointerNativeField,
reinterpret_cast<intptr_t*>(filter_pointer));
}
-
ZLibDeflateFilter::~ZLibDeflateFilter() {
delete[] dictionary_;
delete[] current_buffer_;
- if (initialized()) deflateEnd(&stream_);
+ if (initialized()) {
+ deflateEnd(&stream_);
+ }
}
-
bool ZLibDeflateFilter::Init() {
int window_bits = window_bits_;
if (raw_) {
@@ -53,7 +69,7 @@ bool ZLibDeflateFilter::Init() {
if (result != Z_OK) {
return false;
}
- if (dictionary_ != NULL && !gzip_ && !raw_) {
+ if ((dictionary_ != NULL) && !gzip_ && !raw_) {
result = deflateSetDictionary(&stream_, dictionary_, dictionary_length_);
delete[] dictionary_;
dictionary_ = NULL;
@@ -65,9 +81,10 @@ bool ZLibDeflateFilter::Init() {
return true;
}
-
bool ZLibDeflateFilter::Process(uint8_t* data, intptr_t length) {
- if (current_buffer_ != NULL) return false;
+ if (current_buffer_ != NULL) {
+ return false;
+ }
stream_.avail_in = length;
stream_.next_in = current_buffer_ = data;
return true;
@@ -103,14 +120,14 @@ intptr_t ZLibDeflateFilter::Processed(uint8_t* buffer,
return error ? -1 : 0;
}
-
ZLibInflateFilter::~ZLibInflateFilter() {
delete[] dictionary_;
delete[] current_buffer_;
- if (initialized()) inflateEnd(&stream_);
+ if (initialized()) {
+ inflateEnd(&stream_);
+ }
}
-
bool ZLibInflateFilter::Init() {
int window_bits = raw_ ?
-window_bits_ :
@@ -129,15 +146,15 @@ bool ZLibInflateFilter::Init() {
return true;
}
-
bool ZLibInflateFilter::Process(uint8_t* data, intptr_t length) {
- if (current_buffer_ != NULL) return false;
+ if (current_buffer_ != NULL) {
+ return false;
+ }
stream_.avail_in = length;
stream_.next_in = current_buffer_ = data;
return true;
}
-
intptr_t ZLibInflateFilter::Processed(uint8_t* buffer,
intptr_t length,
bool flush,
« no previous file with comments | « mojo/dart/embedder/io/filter.h ('k') | mojo/dart/embedder/io/filter_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698