Commit Graph

390 Commits

Author SHA1 Message Date
Chris Young
8f9a652774 Revert "Ensure we free the pen list memory"
This reverts commit 74d7c2d2c2.
2016-12-06 23:58:47 +00:00
Chris Young
ecf2fdf612 Free the correct memory pointer 2016-12-06 23:39:46 +00:00
Chris Young
74d7c2d2c2 Ensure we free the pen list memory 2016-12-06 23:39:04 +00:00
Chris Young
a440907b78 Fix memory leak 2016-12-06 23:34:24 +00:00
Chris Young
c0a15de1e4 Ensure pool init returns non-NULL so it isn't treated as an error. 2016-12-06 23:23:01 +00:00
Chris Young
2b6a416970 Replace custom itempool functions with malloc/free as clib handles these more efficiently than our pools. 2016-12-06 23:17:40 +00:00
Chris Young
f38b72a583 Avoid potential memory leak 2016-12-06 17:54:58 +00:00
Chris Young
2dd97b0b8e Fix brokenness caused by recent changes 2016-12-05 23:32:55 +00:00
Chris Young
4b91c43003 Add missing nsoption_finalise 2016-12-05 23:08:17 +00:00
Chris Young
2fe884be65 Fix memory leak searching for resources 2016-12-05 20:30:48 +00:00
Chris Young
71afaacc80 Fix last tab title not being freed 2016-12-05 20:22:21 +00:00
Chris Young
2a9e89de75 Fix potential memory leak 2016-12-05 19:31:04 +00:00
Chris Young
54e31b65d1 Guard against crashing when opening the splash screen
Add extra logging for when things go wrong at this stage
2016-11-28 19:35:15 +00:00
Chris Young
0bc32aa654 Add more clib2 stats
JSON formatted data can now be saved with ARexx "SLABSTATS stats.json"
2016-11-27 17:10:03 +00:00
Chris Young
4fb38f574a AmigaOS low memory handler attempt 2
Neither freeing slabs nor purging the cache are safe to call from interrupts, so instead we schedule these to run on NetSurf's process.
If NetSurf is busy, there may be significant delay, so the priority is set low to ensure this is called only when other - faster - memory handlers have been exhausted.
I don't know if this works, or is sane, as I'm not entirely sure how to test it.
Something similar needs adding for OS4 but low memory is less of an issue there, so will see if this works on OS3 first.
2016-11-27 16:25:27 +00:00
Chris Young
a76a36915c Ensure the memory for the mem-handler interrupt is allocated 2016-11-27 15:36:30 +00:00
Chris Young
c4b8857789 Add low memory handler to purge unused slabs on OS3
TODO: find some way to purge NetSurf's memory cache safely from another process
2016-11-27 15:31:18 +00:00
Chris Young
2043223788 Reduce frequency of diskfont open/close 2016-11-27 14:57:32 +00:00
Chris Young
d436992eb2 Reduce slab size to 2K as very few allocations are above that. 2016-11-20 17:16:18 +00:00
Chris Young
5ce3b93457 Get clib2 slab usage
Calling ARexx function "SLABSTATS" will dump the current stats to the ns log
2016-11-20 17:12:18 +00:00
Chris Young
17128fd0ad Move ItemPool compatiblity into the header and rename 2016-11-20 16:30:33 +00:00
Chris Young
eab6c0c99e remove ami_misc_allocvec_clear 2016-11-19 21:55:15 +00:00
Chris Young
15a6871491 Add missing includes 2016-11-19 21:52:46 +00:00
Chris Young
0513782fe3 Correct revision number
I think my note about AmigaOS version numbering was misleading.
2016-11-19 21:44:42 +00:00
Chris Young
05fa29ba8b more allocvec/malloc changes 2016-11-19 21:40:32 +00:00
Chris Young
4f0c9b6c61 Merge branch 'master' of git://git.netsurf-browser.org/netsurf into chris/malloc
Conflicts:
	frontends/amiga/icon.c
2016-11-19 21:12:31 +00:00
Chris Young
faf4c1fb60 Free and clear icondata to avoid a potential double-free 2016-11-19 21:10:55 +00:00
Chris Young
2c6f2f4ef5 More allocvec/malloc changes 2016-11-19 21:02:42 +00:00
Chris Young
a8bd2af710 More allocvec/malloc replacements 2016-11-19 20:44:17 +00:00
Chris Young
81a7e0cbe9 Change some AllocVecs to mallocs and FreeVecs to free
Need to be careful with ASPrintf
2016-11-19 17:02:18 +00:00
Chris Young
4b1b79582c Move slab size def into memory.c 2016-11-19 16:12:20 +00:00
Chris Young
6951d2327b Add memory.c/h 2016-11-19 15:51:24 +00:00
Chris Young
ec239402ea Move memory functions from misc.c to memory.c 2016-11-19 15:50:22 +00:00
Daniel Silverstone
f8b95e83bb Official Release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEVAwUAWDBZAMMN9DnymH10AQrJjAf+LD/v5Wmzy0TtB7TK58Kk7T6/M6XDZLyR
 a0uyUC5iyGZPnljsds+b6rLl94uM4kDZbATXH2NwZk2BI6Evv8X3ah350XTIciX3
 OcaAHb2oajb8ISesvmaUCPZJhB6k9mUhwpuPUSjuQsMB9kevmoz7KOfqYQ6DPxhq
 fY5G/goqgNlpkUJUPWyAudzJLqh5xsDpG1VGdOPmhjPp3vodYLqFihy8R9Co4gby
 fwcgEL8hI1bnYzsst3JJKJjhlDW/fEgdoScV6lTDp7pZv+VwyNFeKckJAlItwRM0
 cXKSViXgxbTDd9r7n+vrP78srVAY6IGiw7/aIS8/DZAMoEbw6gQXOA==
 =2eDi
 -----END PGP SIGNATURE-----

Merge 3.6 release and prepare 3.7 dev
2016-11-19 13:55:01 +00:00
Daniel Silverstone
75005f9220 Update version.c and amiga version.c 2016-11-19 12:09:51 +00:00
Daniel Silverstone
461cf15308 Bump AmigaOS versions 2016-11-19 12:06:59 +00:00
Chris Young
076e54e1e5 Increase slab size to 8K (recommended size) 2016-11-19 11:21:23 +00:00
Chris Young
67796f2f77 Fix some warnings 2016-11-18 19:33:22 +00:00
Chris Young
c2da6cbd25 Remove setting an env-var to force disable Altivec in libjpeg-turbo
a) v1.5.1 has Altivec off by default when built for OS4
b) I've moved my detection code into libjpeg-turbo, so the env-var will now *only* be an override
2016-11-18 18:49:17 +00:00
Chris Young
2a937ae040 Move declaration to ensure ULONG is defined 2016-11-17 19:56:02 +00:00
Chris Young
387fd20393 Enable slab allocator on OS3
...if we have a sufficiently new (experimental) version of clib2.
2016-11-17 19:26:08 +00:00
Chris Young
f814edee75 Disable triangle mode for bitmap scaling
Potential workaround for #2478
2016-10-23 19:31:43 +01:00
Vincent Sanders
608a18caff remove junk references to old javascript implementations 2016-09-19 22:02:51 +01:00
Vincent Sanders
c830d14d0b cleanup seevral doxygen warnings 2016-09-13 09:16:31 +01:00
Chris Young
e0c3e929f5 Correct the function definitions so the ARexx port works on OS3 (untested) 2016-09-10 20:53:17 +01:00
Chris Young
92601c26ae If NetSurf is already running, ensure when we open a new tab that it becomes active.
This matches the behaviour in more mainstream web browsers.
2016-09-10 20:41:07 +01:00
Chris Young
26c568af15 document ACTIVE 2016-09-10 20:38:14 +01:00
Chris Young
1f96c0a413 Add an ACTIVE switch to the OPEN ARexx command to force new tabs to be active 2016-09-10 20:36:11 +01:00
Chris Young
7cbff32f92 Stop passing NSOPTS/M back to the core
This is a quick fix to stop NetSurf crashing when the URL is provided on the commandline without the URL keyword.
Passing options on the commandline will not work until this is fixed properly.
2016-09-10 18:37:18 +01:00
Chris Young
e34b783b8d Scale using "triangle mode" to avoid corruption at the edge of bitmaps 2016-09-10 18:23:44 +01:00
Chris Young
08e88124d7 Attempt to preserve timestamps 2016-09-07 23:12:52 +01:00
Chris Young
7b5639d982 When opening a new blank tab, always switch to it. 2016-09-04 17:35:32 +01:00
Chris Young
239205033c Only bring the screen to the front if an active tab is being opened via re-launch 2016-09-04 17:17:45 +01:00
Chris Young
cd0ed22494 Bring screen to front when new window/tab is opened be launching NetSurf a second time. 2016-09-04 17:10:59 +01:00
Chris Young
5aa2feaa06 Call CloseLibrary 2016-08-18 00:33:58 +01:00
Chris Young
7543833037 Ensure we don't use a half-opened library if it is optional. 2016-08-18 00:32:33 +01:00
Chris Young
404b522119 Fail if the library interface doesn't open.
This will happen when attempting to open old 68k libraries with no separate interface file, but may also occur when the interface name or version doesn't exist (although the library version number _should_ prevent that)
2016-08-18 00:20:08 +01:00
Chris Young
e8e15b9133 Open a new window instead of a tab if we can't locate the window the tab is supposed to be added to. 2016-08-15 18:00:12 +01:00
Chris Young
923cc06f98 Allow a second-run NetSurf to open passed URL in a new tab rather than a new window. 2016-08-15 17:51:01 +01:00
Chris Young
6a3f7a386e Ensure we are treating LShift/RShift and LAlt/RAlt the same. 2016-08-12 20:32:09 +01:00
Chris Young
0b67394618 Don't attempt to close a public screen we're not the owner of.
I've never been entirely clear on what the correct approach here is, but OS4 has a feature where it will auto open/close a public screen for you.  In this case, in the microseconds between unlocking that screen and attempting to close it, OS4 has already disposed of the screen and NetSurf has crashed, so we assume the owner will handle the closing instead.
2016-08-11 22:34:46 +01:00
Chris Young
c80551b64b Fix OS3 build 2016-08-11 18:55:57 +01:00
Chris Young
5f65b1caa7 OS3-related comments 2016-08-11 18:55:43 +01:00
Chris Young
a0d51e5f68 Remove excessive scheduler debug 2016-08-11 18:20:51 +01:00
Chris Young
ab7e5c2936 Don't Abort/WaitIO when we've already removed it from the message queue (thx Georg) 2016-08-11 18:14:07 +01:00
Chris Young
ebb2a33b0b Missing TAG_DONE (thx capehill) 2016-08-10 23:55:28 +01:00
Chris Young
b63443b243 Use the API for duplicating IORequests
Add some more debug:
  It appears that some timer events are not being picked up, I can see in the log that something which should have been signalled is not being run.
Enabling the log appears to make the situation worse.
2016-08-10 17:54:26 +01:00
Chris Young
4b14f9ff37 Always wait for at least some time, as it's ambiguous as to whether a 0.0s timerequest is valid. 2016-08-10 00:21:52 +01:00
Chris Young
cd48860207 more debug 2016-08-09 20:00:52 +01:00
Chris Young
1ca5b7332c Decouple the scheduler from system time
This is a hang-over from the old polling scheduler.  I've modified it to use relative times and pass the callback along with the TimeRequest so events get executed in the order they arrive.
The list of events is still in a heap sorted by expected execution time, but this may need to change to something more efficient for random lookups.
2016-08-09 18:36:09 +01:00
Chris Young
24c1959105 We don't need ReplyMsg here.
TimerRequests are removed from the message queue by WaitIO() which is ultimately called when the event is taken off the heap.
The event on the top of the heap is _not necessarily_ the one which signalled us, though, and we should probably be handling this better.
2016-08-09 00:53:46 +01:00
Chris Young
747958c14c Scheduler debug logging 2016-08-09 00:20:26 +01:00
Vincent Sanders
b939afe3fc Allow certificate verification user prompt creation to return errors 2016-07-31 13:25:20 +01:00
Chris Young
3303c005ee Remove pointless string copy 2016-07-29 18:02:56 +01:00
Chris Young
7bff70e746 Fix TODO (writing past end of buffer) 2016-07-24 22:38:46 +01:00
Michael Drake
fa2e3b7784 URL unescape: return the new length to the caller.
The avoids situations were we threw away the length, only for
the caller to have to strlen the returned string.

Note, there seems to be a case of the amiga front end writing
beyond end of allocation.  Added a TODO for now.
2016-07-24 14:03:16 +01:00
Chris Young
6239b32d92 Make browserglob private to gui.c 2016-07-09 23:55:16 +01:00
Chris Young
36a2a77a8e tidy-up 2016-07-09 23:43:17 +01:00
Chris Young
d0a1ee7ac0 Only set JSIMD_FORCENONE if it is not already set 2016-07-09 23:17:09 +01:00
Chris Young
794f12e4b5 Add missing files 2016-07-09 14:35:39 +01:00
Chris Young
bb87d63f02 Force disable libjpeg-turbo's use of AltiVec if we don't have it
NB: This var must be set when NetSurf is launched.  The in-program setting is just a precaution in case the install script isn't run
2016-07-09 14:32:43 +01:00
Chris Young
7fe13d5afa Set envvar to the correct value 2016-07-09 13:17:43 +01:00
Chris Young
6a9a8d6127 Move current user options path to an abstracted nsoptions_read/write function 2016-07-09 01:07:18 +01:00
Chris Young
df8aeb4a88 Remove unused variable; help gcc 2016-07-09 00:44:35 +01:00
Chris Young
c9daec5567 Set an env-var if we don't have AltiVec
This, in theory, allows us to use libjpeg-turbo 1.5+ on both AltiVec and non-AltiVec systems.
2016-07-09 00:29:45 +01:00
Chris Young
39dcd22b05 Fix logic in the rare case we're running 8-bit and have a cached full-size native BitMap but need a scaled one. 2016-07-08 23:53:01 +01:00
Chris Young
d39f98065a Fix the caching logic now we've moved 8-bit scaling earlier in the code 2016-07-08 23:43:41 +01:00
Chris Young
ddcc914a3f Use GuiGFX to scale 8-bit images rather than doing two separate operations 2016-07-08 19:57:42 +01:00
Chris Young
dc633bc154 Force friend BitMap usage at depths>8bpp
Fix logic so this forced usage actually applies
2016-07-08 19:21:53 +01:00
Chris Young
7969745217 restrict some more vars 2016-07-08 19:17:42 +01:00
Chris Young
59b29930d7 Fix the signalling to the old session of NetSurf from the newly-launched one.
No idea how this ever worked previously, as it was sending commands to the ARexx server instead of NetSurf.
2016-07-03 22:08:29 +01:00
Chris Young
eb9571ede7 Help gcc opt 2016-07-03 19:39:08 +01:00
Chris Young
bada456d49 Fix specifying URLs on command line 2016-07-03 19:10:57 +01:00
Chris Young
ea00b37874 Attempt to help gcc out a little 2016-07-03 18:48:46 +01:00
Chris Young
61979923c1 Use functions for determining throbber bitmap size 2016-07-03 17:23:24 +01:00
Chris Young
ea9932dd00 Handle closing windows and quitting from the menu differently 2016-07-03 17:09:11 +01:00
Chris Young
65bf58e4a1 Remove ami_menu_toggle_checked global 2016-07-03 16:55:00 +01:00
Chris Young
313c48b8a1 Ensure we aren't using a NULL native BitMap anywhere 2016-07-02 14:56:04 +01:00
Chris Young
6c8225d3ab Don't abort on startup if GuiGFX is not available
Most OS4 users won't need it, everybody else might like the opportunity of using NetSurf to download it :)
2016-07-02 14:49:18 +01:00
Chris Young
65175b4362 Make Amiga SearchEngines file out of the global one plus our own additions 2016-07-01 17:37:09 +01:00
Vincent Sanders
8066d1c8b4 move key press enums and operations to their own header 2016-07-01 14:27:04 +01:00
Vincent Sanders
012b797713 remove unecessary textinput header use from global history header 2016-06-30 15:40:10 +01:00
Vincent Sanders
c313524998 reduce curl usage to fetcher, url unescaping and time parsing 2016-06-29 23:06:53 +01:00
Daniel Silverstone
47ccd9855d Move fetcher_fdset to fetch.h (and rename to fetch_fdset). Maybe not ideal but better 2016-06-27 21:09:39 +01:00
Chris Young
d3cfbc3077 Remove old native build lines from makefile 2016-06-25 21:36:45 +01:00
Chris Young
7051b9e563 Use libiconv instead of newlib's iconv
Requires invalid input to be explicitly ignored, as unlike newlib invalid characters are not replaced with '?'
Fixes bug 2440
2016-06-25 21:24:45 +01:00
Chris Young
14bf4b47a5 Use charset from default Locale and store it in an option so we can (a) override and (b) get it without constantly looking it up 2016-06-25 17:52:32 +01:00
Chris Young
75dcf09394 NULL a couple of variables 2016-06-15 21:04:51 +01:00
Vincent Sanders
66d0f14b32 move the public form API 2016-06-14 12:39:54 +01:00
Vincent Sanders
976eca9958 msplit public url database API out for frontends 2016-06-13 23:34:45 +01:00
Vincent Sanders
76a68d7dd0 Update content to split public and internal API 2016-06-06 09:01:38 +01:00
Chris Young
d923e109cd Fix OS3 build 2016-06-02 21:55:46 +01:00
Chris Young
88ae1ff267 Ensure variables are declared correctly 2016-06-02 00:44:20 +01:00
Chris Young
df2b14ed5f Make rxsig private to gui.c 2016-06-02 00:14:10 +01:00
Chris Young
ccccf76ff8 Make arexx_obj private to arexx.c 2016-06-02 00:09:30 +01:00
Chris Young
26acc5d5c7 Move some globals into gui.c 2016-06-02 00:03:45 +01:00
Chris Young
a4ed8bf4c9 Make more drag-related global variables private 2016-06-01 18:48:37 +01:00
Chris Young
e1dea53d2a Make ami_autoscroll private to drag.c 2016-06-01 18:40:14 +01:00
Chris Young
0bbb4f5a2a Rationalise gui_globals a bit 2016-06-01 17:48:03 +01:00
Vincent Sanders
fcde28d97f reduce core header usage 2016-06-01 07:59:19 +01:00
Vincent Sanders
148748b82c fix missing header for amiga warn user call 2016-05-31 14:25:12 +01:00
Vincent Sanders
667605869f move plotters header into public API 2016-05-30 21:05:57 +01:00
Vincent Sanders
7fc0a4c481 move desktop window header into public API 2016-05-30 17:32:57 +01:00
Vincent Sanders
8711fbe47d move mouse and pointer state header into public API 2016-05-30 12:10:08 +01:00
Vincent Sanders
c041393e66 move netsurf header into public API 2016-05-30 11:51:10 +01:00
Vincent Sanders
9ce71876ce move layout header into public API 2016-05-30 11:31:35 +01:00
Vincent Sanders
527756cca0 move fetch header into public API 2016-05-30 11:29:39 +01:00
Vincent Sanders
fe7eb85614 move misc header into public API 2016-05-30 11:23:32 +01:00
Vincent Sanders
aa5090c85b move utf8 header into public API 2016-05-30 11:20:15 +01:00
Vincent Sanders
c821ed2bbd move download header into public API 2016-05-30 11:15:58 +01:00
Vincent Sanders
d240bec036 move clipboard header into public API 2016-05-30 11:04:32 +01:00
Vincent Sanders
1eb86d9df2 move window header into public API 2016-05-30 11:01:40 +01:00
Vincent Sanders
903c4dbef9 move search header into public API 2016-05-30 10:57:22 +01:00
Vincent Sanders
2dab078f21 move bitmap API header to core include directory 2016-05-26 23:01:03 +01:00
Vincent Sanders
6722943b81 move the CSS content handler 2016-05-26 11:18:41 +01:00
Vincent Sanders
3224d7121a move image content handlers to accomodate core build changes 2016-05-23 23:32:16 +01:00
Chris Young
93be8d805e In 8-bit mode, when using a 1-bit mask, set the mask so only wholly transparent pixels are not plotted by default.
This is considered "more correct" than setting an arbitrary value when full alpha is not possible.
2016-05-22 16:11:01 +01:00
Chris Young
8c00da9ec6 Avoid crash when freeing websearch list 2016-05-22 15:54:18 +01:00
Vincent Sanders
1588a3ba43 fix amiga package dir location 2016-05-15 13:55:02 +01:00
Vincent Sanders
d21447d096 move frontends into sub directory 2016-05-15 13:44:34 +01:00