Browse Source

fixed segfault

v1.x
Tj Holowaychuk 14 years ago
parent
commit
804eeb673c
  1. 14
      src/Canvas.cc

14
src/Canvas.cc

@ -288,18 +288,18 @@ Canvas::~Canvas() {
void void
Canvas::resurface(Handle<Object> canvas) { Canvas::resurface(Handle<Object> canvas) {
HandleScope scope;
// Re-surface // Re-surface
cairo_surface_destroy(_surface); cairo_surface_destroy(_surface);
_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); _surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
// Reset context // Reset context
Local<Value> context = canvas->Get(String::New("context")); Handle<Value> context = canvas->Get(String::New("context"));
Context2d *context2d = ObjectWrap::Unwrap<Context2d>(context->ToObject()); if (!context->IsUndefined()) {
cairo_t *prev = context2d->context(); Context2d *context2d = ObjectWrap::Unwrap<Context2d>(context->ToObject());
context2d->setContext(cairo_create(surface())); cairo_t *prev = context2d->context();
cairo_destroy(prev); context2d->setContext(cairo_create(surface()));
cairo_destroy(prev);
}
} }
/* /*

Loading…
Cancel
Save