| 97 | |
| 98 | == Use smart pointers == |
| 99 | === Right === |
| 100 | {{{ |
| 101 | RefPtr<cairo_region_t> dirtyRegion = adoptRef(cairo_region_create_rectangle(&rect)); |
| 102 | |
| 103 | or |
| 104 | |
| 105 | OwnPtr<WebCore::Page> page = adoptPtr(new WebCore::Page(pageClients)); |
| 106 | }}} |
| 107 | === Wrong === |
| 108 | {{{ |
| 109 | cairo_region_t* dirtyRegion = cairo_region_create_rectangle(&rect); |
| 110 | ... |
| 111 | cairo_region_destroy(dirtyRegion); |
| 112 | |
| 113 | or |
| 114 | |
| 115 | WebCore::Page* page = new WebCore::Page(pageClients); |
| 116 | ... |
| 117 | delete page; |
| 118 | }}} |
| 119 | == Use c++ new/delete operators == |
| 120 | === Right === |
| 121 | Where it is not possible to use smart pointers. Use new/delete operators. |
| 122 | {{{ |
| 123 | unusedCacheEntry = new Ewk_Tile_Unused_Cache_Entry; |
| 124 | ... |
| 125 | delete unusedCacheEntry; |
| 126 | }}} |
| 127 | === Wrong === |
| 128 | {{{ |
| 129 | unusedCacheEntry = static_cast<Ewk_Tile_Unused_Cache_Entry*>(malloc(sizeof(Ewk_Tile_Unused_Cache_Entry))); |
| 130 | ... |
| 131 | free(unusedCacheEntry); |
| 132 | }}} |