From 194233f6be54cf4f9344774fe337187fd7e3c4f0 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Fri, 17 Jun 2016 10:36:45 -0700 Subject: [PATCH] cleanup ImageView.encode cruft --- src/mapnik_image_view.cpp | 49 ++++++++++++++++++--------------------- src/mapnik_image_view.hpp | 4 ++-- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/src/mapnik_image_view.cpp b/src/mapnik_image_view.cpp index 6810cb03cf..f0fad3fefc 100644 --- a/src/mapnik_image_view.cpp +++ b/src/mapnik_image_view.cpp @@ -439,7 +439,6 @@ typedef struct { ImageView* im; std::string format; palette_ptr palette; - bool error; std::string error_name; Nan::Persistent cb; std::string result; @@ -496,58 +495,56 @@ NAN_METHOD(ImageView::encode) return; } - encode_image_view_baton_t *closure = new encode_image_view_baton_t(); - closure->request.data = closure; - closure->im = im; - closure->format = format; - closure->palette = palette; - closure->error = false; - closure->cb.Reset(callback.As()); - uv_queue_work(uv_default_loop(), &closure->request, EIO_Encode, (uv_after_work_cb)EIO_AfterEncode); + encode_image_view_baton_t *baton = new encode_image_view_baton_t(); + baton->request.data = baton; + baton->im = im; + baton->format = format; + baton->palette = palette; + baton->cb.Reset(callback.As()); + uv_queue_work(uv_default_loop(), &baton->request, AsyncEncode, (uv_after_work_cb)AfterEncode); im->Ref(); return; } -void ImageView::EIO_Encode(uv_work_t* req) +void ImageView::AsyncEncode(uv_work_t* req) { - encode_image_view_baton_t *closure = static_cast(req->data); + encode_image_view_baton_t *baton = static_cast(req->data); try { - if (closure->palette.get()) + if (baton->palette.get()) { - closure->result = save_to_string(*(closure->im->this_), closure->format, *closure->palette); + baton->result = save_to_string(*(baton->im->this_), baton->format, *baton->palette); } else { - closure->result = save_to_string(*(closure->im->this_), closure->format); + baton->result = save_to_string(*(baton->im->this_), baton->format); } } catch (std::exception const& ex) { - closure->error = true; - closure->error_name = ex.what(); + baton->error_name = ex.what(); } } -void ImageView::EIO_AfterEncode(uv_work_t* req) +void ImageView::AfterEncode(uv_work_t* req) { Nan::HandleScope scope; - encode_image_view_baton_t *closure = static_cast(req->data); + encode_image_view_baton_t *baton = static_cast(req->data); - if (closure->error) { - v8::Local argv[1] = { Nan::Error(closure->error_name.c_str()) }; - Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(closure->cb), 1, argv); + if (!baton->error_name.empty()) { + v8::Local argv[1] = { Nan::Error(baton->error_name.c_str()) }; + Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(baton->cb), 1, argv); } else { - v8::Local argv[2] = { Nan::Null(), Nan::CopyBuffer((char*)closure->result.data(), closure->result.size()).ToLocalChecked() }; - Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(closure->cb), 2, argv); + v8::Local argv[2] = { Nan::Null(), Nan::CopyBuffer((char*)baton->result.data(), baton->result.size()).ToLocalChecked() }; + Nan::MakeCallback(Nan::GetCurrentContext()->Global(), Nan::New(baton->cb), 2, argv); } - closure->im->Unref(); - closure->cb.Reset(); - delete closure; + baton->im->Unref(); + baton->cb.Reset(); + delete baton; } diff --git a/src/mapnik_image_view.hpp b/src/mapnik_image_view.hpp index f9e35c62f6..73a5afdbdd 100644 --- a/src/mapnik_image_view.hpp +++ b/src/mapnik_image_view.hpp @@ -28,8 +28,8 @@ class ImageView: public Nan::ObjectWrap { static NAN_METHOD(encodeSync); static NAN_METHOD(encode); - static void EIO_Encode(uv_work_t* req); - static void EIO_AfterEncode(uv_work_t* req); + static void AsyncEncode(uv_work_t* req); + static void AfterEncode(uv_work_t* req); //static NAN_METHOD(view); static NAN_METHOD(width);