Title: [104568] trunk/Source/WebKit/efl
- Revision
- 104568
- Author
- [email protected]
- Date
- 2012-01-10 07:17:50 -0800 (Tue, 10 Jan 2012)
Log Message
[EFL] Added smart pointers to Ewk_View_Paint_Context class and done minor refactoring.
https://bugs.webkit.org/show_bug.cgi?id=75837
Patch by Tomasz Morawski <[email protected]> on 2012-01-10
Reviewed by Ryosuke Niwa.
Changed graphicContext raw pointer to OwnPtr smart pointer.
Renamed cr to cairo and made it a RefPtr.
* ewk/ewk_view.cpp:
(ewk_view_paint_context_new): Adjust to auto pointers use.
(ewk_view_paint_context_free): Removed explicit raw pointers delete.
Adjust to auto pointers use:
(ewk_view_paint_context_save):
(ewk_view_paint_context_restore):
(ewk_view_paint_context_clip):
(ewk_view_paint_context_paint):
(ewk_view_paint_context_paint_contents):
Modified Paths
Diff
Modified: trunk/Source/WebKit/efl/ChangeLog (104567 => 104568)
--- trunk/Source/WebKit/efl/ChangeLog 2012-01-10 15:14:05 UTC (rev 104567)
+++ trunk/Source/WebKit/efl/ChangeLog 2012-01-10 15:17:50 UTC (rev 104568)
@@ -1,3 +1,23 @@
+2012-01-10 Tomasz Morawski <[email protected]>
+
+ [EFL] Added smart pointers to Ewk_View_Paint_Context class and done minor refactoring.
+ https://bugs.webkit.org/show_bug.cgi?id=75837
+
+ Reviewed by Ryosuke Niwa.
+
+ Changed graphicContext raw pointer to OwnPtr smart pointer.
+ Renamed cr to cairo and made it a RefPtr.
+
+ * ewk/ewk_view.cpp:
+ (ewk_view_paint_context_new): Adjust to auto pointers use.
+ (ewk_view_paint_context_free): Removed explicit raw pointers delete.
+ Adjust to auto pointers use:
+ (ewk_view_paint_context_save):
+ (ewk_view_paint_context_restore):
+ (ewk_view_paint_context_clip):
+ (ewk_view_paint_context_paint):
+ (ewk_view_paint_context_paint_contents):
+
2012-01-09 Raphael Kubo da Costa <[email protected]>
[EFL] Add getter for Ewk_JS_Object::view.
Modified: trunk/Source/WebKit/efl/ewk/ewk_view.cpp (104567 => 104568)
--- trunk/Source/WebKit/efl/ewk/ewk_view.cpp 2012-01-10 15:14:05 UTC (rev 104567)
+++ trunk/Source/WebKit/efl/ewk/ewk_view.cpp 2012-01-10 15:17:50 UTC (rev 104568)
@@ -2562,57 +2562,54 @@
* to define their own backing store.
*/
struct _Ewk_View_Paint_Context {
- WebCore::GraphicsContext* graphicContext;
WebCore::FrameView* view;
- cairo_t* cr;
+ OwnPtr<WebCore::GraphicsContext> graphicContext;
+ RefPtr<cairo_t> cairo;
};
-Ewk_View_Paint_Context* ewk_view_paint_context_new(Ewk_View_Private_Data* priv, cairo_t* cr)
+Ewk_View_Paint_Context* ewk_view_paint_context_new(Ewk_View_Private_Data* priv, cairo_t* cairo)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(priv, 0);
- EINA_SAFETY_ON_NULL_RETURN_VAL(cr, 0);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(cairo, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(priv->mainFrame, 0);
- WebCore::FrameView* view = priv->mainFrame->view();
- EINA_SAFETY_ON_NULL_RETURN_VAL(view, 0);
- Ewk_View_Paint_Context* context = static_cast<Ewk_View_Paint_Context*>(malloc(sizeof(*context)));
- EINA_SAFETY_ON_NULL_RETURN_VAL(context, 0);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(priv->mainFrame->view(), 0);
- context->graphicContext = new WebCore::GraphicsContext(cr);
- if (!context->graphicContext) {
- free(context);
- return 0;
- }
- context->view = view;
- context->cr = cairo_reference(cr);
+ Ewk_View_Paint_Context* context = new Ewk_View_Paint_Context;
+ context->view = priv->mainFrame->view();
+ context->graphicContext = adoptPtr(new WebCore::GraphicsContext(cairo));
+ context->cairo = adoptRef(cairo_reference(cairo));
+
return context;
}
void ewk_view_paint_context_free(Ewk_View_Paint_Context* context)
{
EINA_SAFETY_ON_NULL_RETURN(context);
- delete context->graphicContext;
- cairo_destroy(context->cr);
- free(context);
+
+ delete context;
}
void ewk_view_paint_context_save(Ewk_View_Paint_Context* context)
{
EINA_SAFETY_ON_NULL_RETURN(context);
- cairo_save(context->cr);
+
+ cairo_save(context->cairo.get());
context->graphicContext->save();
}
void ewk_view_paint_context_restore(Ewk_View_Paint_Context* context)
{
EINA_SAFETY_ON_NULL_RETURN(context);
+
context->graphicContext->restore();
- cairo_restore(context->cr);
+ cairo_restore(context->cairo.get());
}
void ewk_view_paint_context_clip(Ewk_View_Paint_Context* context, const Eina_Rectangle* area)
{
EINA_SAFETY_ON_NULL_RETURN(context);
EINA_SAFETY_ON_NULL_RETURN(area);
+
context->graphicContext->clip(WebCore::IntRect(area->x, area->y, area->w, area->h));
}
@@ -2625,7 +2622,7 @@
if (context->view->isTransparent())
context->graphicContext->clearRect(rect);
- context->view->paint(context->graphicContext, rect);
+ context->view->paint(context->graphicContext.get(), rect);
}
void ewk_view_paint_context_paint_contents(Ewk_View_Paint_Context* context, const Eina_Rectangle* area)
@@ -2638,7 +2635,7 @@
if (context->view->isTransparent())
context->graphicContext->clearRect(rect);
- context->view->paintContents(context->graphicContext, rect);
+ context->view->paintContents(context->graphicContext.get(), rect);
}
void ewk_view_paint_context_scale(Ewk_View_Paint_Context* context, float scaleX, float scaleY)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes