Changeset 122452 in webkit
- Timestamp:
- Jul 12, 2012 6:39:22 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r122438 r122452 1 2012-07-12 Christophe Dumez <christophe.dumez@intel.com> 2 3 [EFL] [WK2] regression(r122411) Crashes in Ewk_View 4 https://bugs.webkit.org/show_bug.cgi?id=91068 5 6 Reviewed by Kentaro Hara. 7 8 Avoid using calloc() to allocate memory for structures 9 and use new operator instead. calloc() causes unwanted 10 behavior when allocing a structure which contains 11 non-pointer types (e.g. a HashMap) and leads to 12 crashes. 13 14 * UIProcess/API/efl/ewk_context.cpp: 15 (_Ewk_Context::_Ewk_Context): 16 * UIProcess/API/efl/ewk_intent.cpp: 17 (_Ewk_Intent): 18 (_Ewk_Intent::_Ewk_Intent): 19 (ewk_intent_unref): 20 (ewk_intent_new): 21 * UIProcess/API/efl/ewk_intent_service.cpp: 22 (_Ewk_Intent_Service): 23 (_Ewk_Intent_Service::_Ewk_Intent_Service): 24 (ewk_intent_service_unref): 25 (ewk_intent_service_new): 26 * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: 27 (_Ewk_Navigation_Policy_Decision): 28 (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision): 29 (ewk_navigation_policy_decision_free): 30 (ewk_navigation_policy_decision_new): 31 * UIProcess/API/efl/ewk_url_request.cpp: 32 (_Ewk_Url_Request): 33 (_Ewk_Url_Request::_Ewk_Url_Request): 34 (ewk_url_request_unref): 35 (ewk_url_request_new): 36 * UIProcess/API/efl/ewk_url_response.cpp: 37 (_Ewk_Url_Response): 38 (_Ewk_Url_Response::_Ewk_Url_Response): 39 (ewk_url_response_unref): 40 (ewk_url_response_new): 41 * UIProcess/API/efl/ewk_view.cpp: 42 (_Ewk_View_Private_Data): 43 (_Ewk_View_Private_Data::_Ewk_View_Private_Data): 44 (_ewk_view_priv_new): 45 (_ewk_view_priv_del): 46 * UIProcess/API/efl/ewk_web_error.cpp: 47 (_Ewk_Web_Error): 48 (_Ewk_Web_Error::_Ewk_Web_Error): 49 (ewk_web_error_free): 50 (ewk_web_error_new): 51 * UIProcess/API/efl/ewk_web_resource.cpp: 52 (_Ewk_Web_Resource): 53 (_Ewk_Web_Resource::_Ewk_Web_Resource): 54 (ewk_web_resource_unref): 55 (ewk_web_resource_new): 56 1 57 2012-07-11 Andras Becsi <andras.becsi@nokia.com> 2 58 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
r122299 r122452 36 36 37 37 _Ewk_Context(WKContextRef contextRef) 38 { 39 this->context = contextRef; 40 } 38 : context(contextRef) 39 { } 41 40 }; 42 41 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_intent.cpp
r121733 r122452 51 51 const char* type; 52 52 const char* service; 53 54 _Ewk_Intent(WKIntentDataRef intentRef) 55 : __ref(1) 56 #if ENABLE(WEB_INTENTS) 57 , wkIntent(intentRef) 58 #endif 59 , action(0) 60 , type(0) 61 , service(0) 62 { 63 } 53 64 }; 54 65 … … 83 94 eina_stringshare_del(intent->type); 84 95 eina_stringshare_del(intent->service); 85 free(intent);96 delete intent; 86 97 #endif 87 98 } … … 193 204 EINA_SAFETY_ON_NULL_RETURN_VAL(intentData, 0); 194 205 195 Ewk_Intent* ewkIntent = static_cast<Ewk_Intent*>(calloc(1, sizeof(Ewk_Intent))); 196 ewkIntent->__ref = 1; 197 ewkIntent->wkIntent = intentData; 198 199 return ewkIntent; 206 return new Ewk_Intent(intentData); 200 207 } 201 208 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp
r121732 r122452 51 51 const char* title; 52 52 const char* disposition; 53 54 _Ewk_Intent_Service(WKIntentServiceInfoRef serviceRef) 55 : __ref(1) 56 #if ENABLE(WEB_INTENTS_TAG) 57 , wkService(serviceRef) 58 #endif 59 , action(0) 60 , type(0) 61 , href(0) 62 , title(0) 63 , disposition(0) 64 { } 53 65 }; 54 66 … … 85 97 eina_stringshare_del(service->title); 86 98 eina_stringshare_del(service->disposition); 87 free(service);99 delete service; 88 100 #endif 89 101 } … … 169 181 EINA_SAFETY_ON_NULL_RETURN_VAL(wkService, 0); 170 182 171 Ewk_Intent_Service* ewkIntentService = static_cast<Ewk_Intent_Service*>(calloc(1, sizeof(Ewk_Intent_Service))); 172 ewkIntentService->__ref = 1; 173 ewkIntentService->wkService = wkService; 174 175 return ewkIntentService; 183 return new Ewk_Intent_Service(wkService); 176 184 } 177 185 #endif -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp
r122426 r122452 48 48 Ewk_Url_Request* request; 49 49 const char* frameName; 50 51 _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef _listener, Ewk_Navigation_Type _navigationType, Event_Mouse_Button _mouseButton, Event_Modifier_Keys _modifiers, Ewk_Url_Request* _request, const char* _frameName) 52 : listener(_listener) 53 , actedUponByClient(false) 54 , navigationType(_navigationType) 55 , mouseButton(_mouseButton) 56 , modifiers(_modifiers) 57 , request(_request) 58 , frameName(eina_stringshare_add(_frameName)) 59 { } 50 60 }; 51 61 … … 60 70 ewk_url_request_unref(decision->request); 61 71 eina_stringshare_del(decision->frameName); 62 free(decision);72 delete decision; 63 73 } 64 74 … … 144 154 Ewk_Navigation_Policy_Decision* ewk_navigation_policy_decision_new(WKFrameNavigationType navigationType, WKEventMouseButton mouseButton, WKEventModifiers modifiers, WKURLRequestRef request, const char* frameName, WKFramePolicyListenerRef listener) 145 155 { 146 Ewk_Navigation_Policy_Decision* ewkPolicyDecision = static_cast<Ewk_Navigation_Policy_Decision*>(calloc(1, sizeof(Ewk_Navigation_Policy_Decision))); 147 ewkPolicyDecision->listener = listener; 148 ewkPolicyDecision->mouseButton = static_cast<Event_Mouse_Button>(mouseButton); 149 ewkPolicyDecision->modifiers = static_cast<Event_Modifier_Keys>(modifiers); 150 ewkPolicyDecision->navigationType = static_cast<Ewk_Navigation_Type>(navigationType); 151 ewkPolicyDecision->request = ewk_url_request_new(request); 152 ewkPolicyDecision->frameName = eina_stringshare_add(frameName); 153 154 return ewkPolicyDecision; 156 return new Ewk_Navigation_Policy_Decision(listener, 157 static_cast<Ewk_Navigation_Type>(navigationType), 158 static_cast<Event_Mouse_Button>(mouseButton), 159 static_cast<Event_Modifier_Keys>(modifiers), 160 ewk_url_request_new(request), 161 frameName); 155 162 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_request.cpp
r121889 r122452 49 49 const char* first_party; 50 50 const char* http_method; 51 52 _Ewk_Url_Request(WKURLRequestRef requestRef) 53 : __ref(1) 54 , wkRequest(requestRef) 55 , url(0) 56 , first_party(0) 57 , http_method(0) 58 { } 51 59 }; 52 60 … … 78 86 eina_stringshare_del(request->first_party); 79 87 eina_stringshare_del(request->http_method); 80 free(request);88 delete request; 81 89 } 82 90 … … 120 128 EINA_SAFETY_ON_NULL_RETURN_VAL(wkUrlRequest, 0); 121 129 122 Ewk_Url_Request* ewkUrlRequest = static_cast<Ewk_Url_Request*>(calloc(1, sizeof(Ewk_Url_Request))); 123 ewkUrlRequest->__ref = 1; 124 ewkUrlRequest->wkRequest = wkUrlRequest; 125 126 return ewkUrlRequest; 130 return new Ewk_Url_Request(wkUrlRequest); 127 131 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_url_response.cpp
r122411 r122452 40 40 const char* url; 41 41 const char* mimeType; 42 43 _Ewk_Url_Response(const WebCore::ResourceResponse& _coreResponse) 44 : __ref(1) 45 , coreResponse(_coreResponse) 46 , url(0) 47 , mimeType(0) 48 { } 42 49 }; 43 50 … … 57 64 eina_stringshare_del(response->url); 58 65 eina_stringshare_del(response->mimeType); 59 free(response);66 delete response; 60 67 } 61 68 … … 93 100 Ewk_Url_Response* ewk_url_response_new(const WebCore::ResourceResponse& coreResponse) 94 101 { 95 Ewk_Url_Response* ewkUrlResponse = static_cast<Ewk_Url_Response*>(calloc(1, sizeof(Ewk_Url_Response))); 96 ewkUrlResponse->__ref = 1; 97 ewkUrlResponse->coreResponse = coreResponse; 98 99 return ewkUrlResponse; 102 return new Ewk_Url_Response(coreResponse); 100 103 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
r122426 r122452 51 51 const char* title; 52 52 LoadingResourcesMap loadingResourcesMap; 53 54 _Ewk_View_Private_Data() 55 : uri(0) 56 , title(0) 57 { } 53 58 }; 54 59 … … 261 266 static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) 262 267 { 263 Ewk_View_Private_Data* priv = 264 static_cast<Ewk_View_Private_Data*>(calloc(1, sizeof(Ewk_View_Private_Data))); 268 Ewk_View_Private_Data* priv = new Ewk_View_Private_Data; 265 269 if (!priv) { 266 270 EINA_LOG_CRIT("could not allocate Ewk_View_Private_Data"); … … 279 283 eina_stringshare_del(priv->uri); 280 284 eina_stringshare_del(priv->title); 281 free(priv);285 delete priv; 282 286 } 283 287 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp
r121835 r122452 45 45 const char* url; 46 46 const char* description; 47 48 _Ewk_Web_Error(WKErrorRef errorRef) 49 : wkError(errorRef) 50 , url(0) 51 , description(0) 52 { } 47 53 }; 48 54 … … 64 70 eina_stringshare_del(error->url); 65 71 eina_stringshare_del(error->description); 66 free(error);72 delete error; 67 73 } 68 74 … … 123 129 EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0); 124 130 125 Ewk_Web_Error* ewkError = static_cast<Ewk_Web_Error*>(calloc(1, sizeof(Ewk_Web_Error))); 126 ewkError->wkError = error; 127 128 return ewkError; 131 return new Ewk_Web_Error(error); 129 132 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_web_resource.cpp
r121889 r122452 34 34 CString url; 35 35 bool isMainResource; 36 37 _Ewk_Web_Resource(const char* _url, bool _isMainResource) 38 : __ref(1) 39 , url(_url) 40 , isMainResource(_isMainResource) 41 { } 36 42 }; 37 43 … … 50 56 return; 51 57 52 free(resource);58 delete resource; 53 59 } 54 60 … … 68 74 EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0); 69 75 70 Ewk_Web_Resource* resource = static_cast<Ewk_Web_Resource*>(calloc(1, sizeof(Ewk_Web_Resource))); 71 resource->url = url; 72 resource->isMainResource = isMainResource; 73 resource->__ref = 1; 74 75 return resource; 76 return new Ewk_Web_Resource(url, isMainResource); 76 77 } 77 78
Note: See TracChangeset
for help on using the changeset viewer.