Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit e611598

Browse files
committed
libbrowser: Don't use aliased and never-defined structure types.
Previously, `MCBrowserListRef` was defined as a pointer to a `struct __MCBrowserList` that was never defined anywhere. Instead, every use of `MCBrowserListRef` was aliased to a complete `class MCBrowserList` type. There were several other types used in a similar way by libbrowser. This highly confused static analysis tools! This patch defines each `MCBrowser*Ref` type to be a pointer to the corresponding class type, and removes as many unnecessary aliasing casts as possible from libbrowser method functions.
1 parent 21539aa commit e611598

File tree

5 files changed

+79
-79
lines changed

5 files changed

+79
-79
lines changed

libbrowser/include/libbrowser.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class MCBrowserRefCounted
3636
};
3737

3838
class MCBrowser;
39-
typedef struct __MCBrowserList *MCBrowserListRef;
39+
typedef class MCBrowserList *MCBrowserListRef;
4040

4141
// Event handler interface
4242
class MCBrowserEventHandler : public MCBrowserRefCounted
@@ -152,8 +152,8 @@ MC_DLLEXPORT bool MCBrowserLibraryGetRunloopCallback(MCBrowserRunloopCallback &r
152152

153153
//////////
154154

155-
typedef struct __MCBrowserList *MCBrowserListRef;
156-
typedef struct __MCBrowserDictionary *MCBrowserDictionaryRef;
155+
typedef class MCBrowserList *MCBrowserListRef;
156+
typedef class MCBrowserDictionary *MCBrowserDictionaryRef;
157157

158158
enum MCBrowserValueType
159159
{
@@ -223,8 +223,8 @@ MC_DLLEXPORT bool MCBrowserDictionaryGetDictionary(MCBrowserDictionaryRef p_dict
223223

224224
//////////
225225

226-
typedef struct __MCBrowser *MCBrowserRef;
227-
typedef struct __MCBrowserFactory *MCBrowserFactoryRef;
226+
typedef class MCBrowser *MCBrowserRef;
227+
typedef class MCBrowserFactory *MCBrowserFactoryRef;
228228

229229
MC_DLLEXPORT bool MCBrowserFactoryGet(const char *p_factory_id, MCBrowserFactoryRef &r_factory);
230230
MC_DLLEXPORT bool MCBrowserFactoryCreateBrowser(MCBrowserFactoryRef p_factory, void *p_display, void *p_parent_view, MCBrowserRef &r_browser);

libbrowser/src/libbrowser.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ bool MCBrowserLibraryInitialize()
180180
void MCBrowserLibraryFinalize()
181181
{
182182
if (s_browser_factory)
183-
delete (MCBrowserFactory*)s_browser_factory;
183+
delete s_browser_factory;
184184
}
185185

186186
//////////
@@ -232,10 +232,10 @@ bool MCBrowserFactoryCreateBrowser(MCBrowserFactoryRef p_factory, void *p_displa
232232
return false;
233233

234234
MCBrowser *t_browser;
235-
if (!((MCBrowserFactory*)p_factory)->CreateBrowser(p_display, p_parent_window, t_browser))
235+
if (!p_factory->CreateBrowser(p_display, p_parent_window, t_browser))
236236
return false;
237237

238-
r_browser = (MCBrowserRef)t_browser;
238+
r_browser = t_browser;
239239
return true;
240240
}
241241

@@ -246,7 +246,7 @@ MCBrowserRef MCBrowserRetain(MCBrowserRef p_browser)
246246
if (p_browser == nil)
247247
return nil;
248248

249-
((MCBrowser*)p_browser)->Retain();
249+
p_browser->Retain();
250250
return p_browser;
251251
}
252252

@@ -255,7 +255,7 @@ void MCBrowserRelease(MCBrowserRef p_browser)
255255
if (p_browser == nil)
256256
return;
257257

258-
((MCBrowser*)p_browser)->Release();
258+
p_browser->Release();
259259
}
260260

261261
//////////
@@ -265,87 +265,87 @@ void *MCBrowserGetNativeLayer(MCBrowserRef p_browser)
265265
if (p_browser == nil)
266266
return nil;
267267

268-
return ((MCBrowser*)p_browser)->GetNativeLayer();
268+
return p_browser->GetNativeLayer();
269269
}
270270

271271
bool MCBrowserGetRect(MCBrowserRef p_browser, MCBrowserRect &r_rect)
272272
{
273273
if (p_browser == nil)
274274
return false;
275275

276-
return ((MCBrowser*)p_browser)->GetRect(r_rect);
276+
return p_browser->GetRect(r_rect);
277277
}
278278

279279
bool MCBrowserSetRect(MCBrowserRef p_browser, const MCBrowserRect &p_rect)
280280
{
281281
if (p_browser == nil)
282282
return false;
283283

284-
return ((MCBrowser*)p_browser)->SetRect(p_rect);
284+
return p_browser->SetRect(p_rect);
285285
}
286286

287287
bool MCBrowserGetBoolProperty(MCBrowserRef p_browser, MCBrowserProperty p_property, bool &r_value)
288288
{
289289
if (p_browser == nil)
290290
return false;
291291

292-
return ((MCBrowser*)p_browser)->GetBoolProperty(p_property, r_value);
292+
return p_browser->GetBoolProperty(p_property, r_value);
293293
}
294294

295295
bool MCBrowserSetBoolProperty(MCBrowserRef p_browser, MCBrowserProperty p_property, bool p_value)
296296
{
297297
if (p_browser == nil)
298298
return false;
299299

300-
return ((MCBrowser*)p_browser)->SetBoolProperty(p_property, p_value);
300+
return p_browser->SetBoolProperty(p_property, p_value);
301301
}
302302

303303
bool MCBrowserGetStringProperty(MCBrowserRef p_browser, MCBrowserProperty p_property, char *&r_value)
304304
{
305305
if (p_browser == nil)
306306
return false;
307307

308-
return ((MCBrowser*)p_browser)->GetStringProperty(p_property, r_value);
308+
return p_browser->GetStringProperty(p_property, r_value);
309309
}
310310

311311
bool MCBrowserSetStringProperty(MCBrowserRef p_browser, MCBrowserProperty p_property, const char *p_value)
312312
{
313313
if (p_browser == nil)
314314
return false;
315315

316-
return ((MCBrowser*)p_browser)->SetStringProperty(p_property, p_value);
316+
return p_browser->SetStringProperty(p_property, p_value);
317317
}
318318

319319
bool MCBrowserGoBack(MCBrowserRef p_browser)
320320
{
321321
if (p_browser == nil)
322322
return false;
323323

324-
return ((MCBrowser*)p_browser)->GoBack();
324+
return p_browser->GoBack();
325325
}
326326

327327
bool MCBrowserGoForward(MCBrowserRef p_browser)
328328
{
329329
if (p_browser == nil)
330330
return false;
331331

332-
return ((MCBrowser*)p_browser)->GoForward();
332+
return p_browser->GoForward();
333333
}
334334

335335
bool MCBrowserGoToURL(MCBrowserRef p_browser, const char *p_url)
336336
{
337337
if (p_browser == nil)
338338
return false;
339339

340-
return ((MCBrowser*)p_browser)->GoToURL(p_url);
340+
return p_browser->GoToURL(p_url);
341341
}
342342

343343
bool MCBrowserEvaluateJavaScript(MCBrowserRef p_browser, const char *p_script, char *&r_result)
344344
{
345345
if (p_browser == nil)
346346
return false;
347347

348-
return ((MCBrowser*)p_browser)->EvaluateJavaScript(p_script, r_result);
348+
return p_browser->EvaluateJavaScript(p_script, r_result);
349349
}
350350

351351
//////////
@@ -363,37 +363,37 @@ class MCBrowserEventHandlerWrapper : public MCBrowserEventHandler
363363
virtual void OnNavigationBegin(MCBrowser *p_browser, bool p_in_frame, const char *p_url)
364364
{
365365
if (m_callback)
366-
m_callback(m_context, (MCBrowserRef)p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateBegin, p_in_frame, p_url, nil);
366+
m_callback(m_context, p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateBegin, p_in_frame, p_url, nil);
367367
}
368368

369369
virtual void OnNavigationComplete(MCBrowser *p_browser, bool p_in_frame, const char *p_url)
370370
{
371371
if (m_callback)
372-
m_callback(m_context, (MCBrowserRef)p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateComplete, p_in_frame, p_url, nil);
372+
m_callback(m_context, p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateComplete, p_in_frame, p_url, nil);
373373
}
374374

375375
virtual void OnNavigationFailed(MCBrowser *p_browser, bool p_in_frame, const char *p_url, const char *p_error)
376376
{
377377
if (m_callback)
378-
m_callback(m_context, (MCBrowserRef)p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateFailed, p_in_frame, p_url, p_error);
378+
m_callback(m_context, p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateFailed, p_in_frame, p_url, p_error);
379379
}
380380

381381
virtual void OnDocumentLoadBegin(MCBrowser *p_browser, bool p_in_frame, const char *p_url)
382382
{
383383
if (m_callback)
384-
m_callback(m_context, (MCBrowserRef)p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateBegin, p_in_frame, p_url, nil);
384+
m_callback(m_context, p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateBegin, p_in_frame, p_url, nil);
385385
}
386386

387387
virtual void OnDocumentLoadComplete(MCBrowser *p_browser, bool p_in_frame, const char *p_url)
388388
{
389389
if (m_callback)
390-
m_callback(m_context, (MCBrowserRef)p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateComplete, p_in_frame, p_url, nil);
390+
m_callback(m_context, p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateComplete, p_in_frame, p_url, nil);
391391
}
392392

393393
virtual void OnDocumentLoadFailed(MCBrowser *p_browser, bool p_in_frame, const char *p_url, const char *p_error)
394394
{
395395
if (m_callback)
396-
m_callback(m_context, (MCBrowserRef)p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateFailed, p_in_frame, p_url, p_error);
396+
m_callback(m_context, p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateFailed, p_in_frame, p_url, p_error);
397397
}
398398

399399
private:
@@ -408,7 +408,7 @@ bool MCBrowserSetRequestHandler(MCBrowserRef p_browser, MCBrowserRequestCallback
408408

409409
if (p_callback == nil)
410410
{
411-
((MCBrowser*)p_browser)->SetEventHandler(nil);
411+
p_browser->SetEventHandler(nil);
412412
return true;
413413
}
414414

@@ -418,7 +418,7 @@ bool MCBrowserSetRequestHandler(MCBrowserRef p_browser, MCBrowserRequestCallback
418418
if (t_wrapper == nil)
419419
return false;
420420

421-
((MCBrowser*)p_browser)->SetEventHandler(t_wrapper);
421+
p_browser->SetEventHandler(t_wrapper);
422422
return true;
423423
}
424424

@@ -437,7 +437,7 @@ class MCBrowserJavaScriptHandlerWrapper : public MCBrowserJavaScriptHandler
437437
virtual void OnJavaScriptCall(MCBrowser *p_browser, const char *p_handler, MCBrowserListRef p_params)
438438
{
439439
if (m_callback)
440-
m_callback(m_context, (MCBrowserRef)p_browser, p_handler, p_params);
440+
m_callback(m_context, p_browser, p_handler, p_params);
441441
}
442442

443443
private:
@@ -452,7 +452,7 @@ bool MCBrowserSetJavaScriptHandler(MCBrowserRef p_browser, MCBrowserJavaScriptCa
452452

453453
if (p_callback == nil)
454454
{
455-
((MCBrowser*)p_browser)->SetJavaScriptHandler(nil);
455+
p_browser->SetJavaScriptHandler(nil);
456456
return true;
457457
}
458458

@@ -462,7 +462,7 @@ bool MCBrowserSetJavaScriptHandler(MCBrowserRef p_browser, MCBrowserJavaScriptCa
462462
if (t_wrapper == nil)
463463
return false;
464464

465-
((MCBrowser*)p_browser)->SetJavaScriptHandler(t_wrapper);
465+
p_browser->SetJavaScriptHandler(t_wrapper);
466466
return true;
467467
}
468468

libbrowser/src/libbrowser_android.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1005,7 +1005,7 @@ bool MCAndroidWebViewBrowserFactoryCreate(MCBrowserFactoryRef &r_factory)
10051005
if (t_factory == nil)
10061006
return false;
10071007

1008-
r_factory = (MCBrowserFactoryRef)t_factory;
1008+
r_factory = t_factory;
10091009
return true;
10101010
}
10111011

libbrowser/src/libbrowser_cef.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1709,6 +1709,6 @@ bool MCCefBrowserFactoryCreate(MCBrowserFactoryRef &r_factory)
17091709
return false;
17101710
}
17111711

1712-
r_factory = (MCBrowserFactoryRef)t_factory;
1712+
r_factory = t_factory;
17131713
return true;
17141714
}

0 commit comments

Comments
 (0)