Commit Graph

29 Commits

Author SHA1 Message Date
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Paul Cornett
0ca45d1a59 Remove redundant checks for NULL before calling delete 2020-02-02 23:51:39 -08:00
Ian McInerney
2f8b2d9a8e Fix deletion of array in fswatcher_inotify 2019-08-28 09:44:55 -07:00
Paul Cornett
0fc5413974 Call static functions directly 2019-02-25 23:53:51 -08:00
Paul Cornett
29e1f1e9ce Avoid deleting object of different size than what was allocated 2017-10-01 09:02:11 -07:00
Maarten Bent
87308746be Resolve -Wsuggest-override warnings. 2017-02-24 23:37:44 +01:00
David Hart
34d39c9dfb Fix use of dangling reference in wxFileSystemWatcher Unix code
Don't reference the "watch" object after possibly destroying it when handling
IN_DELETE_SELF inotify notification.

Closes #17122.
2016-08-19 23:19:14 +02:00
David Hart
6537356236 Make failure to remove an inotify watch a warning
Apparently this can happen when a directory is deleted just before the watch
is removed and it is impossible to avoid it, so just send a warning message so
that the program could react to this, if necessary, but don't annoy the user
with an error in this case.

See #17122.
2016-08-19 23:15:53 +02:00
Dimitri Schoolwerth
31145b8e3a Fix some typos, no code changes (besides strings) 2015-06-05 02:54:46 +04:00
Vadim Zeitlin
d32895c5d8 Generate events with specific wxFSW_WARNING_OVERFLOW type if applicable.
This allows the program to distinguish between some other, unspecified,
warnings and this one which can and does happen whenever too many changes
occur too quickly but which has a clearly defined work around: the state kept
inside the program just needs to be refreshed by rescanning the directory anew.

See #12847.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-07 09:58:51 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
9f987630e2 Handle IN_MOVE inotify events better.
Set the new path correctly for moved or renamed files.

Closes #14889.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-11 01:32:42 +00:00
Vadim Zeitlin
aa29d293df Warn, don't assert, about unexpected inotify events.
In practice we seem to be getting some unexpected inotify() events during
heavy IO activity. This shouldn't happen but it does, so at least don't
prevent the program from running by popping up the assertion dialog when it
happens.

Closes #14854.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-02 20:24:38 +00:00
Vadim Zeitlin
dab61056c8 Don't assert when stopping watching a just renamed file.
(Almost) silently ignore renames of the files which we don't watch any longer
instead of asserting if this happens.

Closes #14863.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-29 22:03:21 +00:00
Vadim Zeitlin
0a41f17e0b Log invalid inotify() events without a valid watch descriptor.
Apparently we can get events without any valid watch descriptor, even though
this is not supposed to happen. At least warn about them.

See #14854.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-29 22:02:58 +00:00
Vadim Zeitlin
8ded8d08ab Correct handling of IN_Q_OVERFLOW in wxFileSystemWatcher Linux code.
Don't use wd field if it's -1 which can happen for IN_Q_OVERFLOW.

See #14854.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-29 22:02:36 +00:00
Vadim Zeitlin
092e08a844 Add wxFSW_EVENT_UNMOUNT wxFileSystemWatcher flag and implement it for Linux.
This flag generates the corresponding event when the file system containing
the watched directory is unmounted. Currently it is only implemented for
Linux where unmounting now generates this event instead of an error.

Closes #14834.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-19 12:52:18 +00:00
Vadim Zeitlin
1ec4e9c2b7 Convert wxFSW_EVENT_{WARNING,ERROR} to string correctly.
Previously these types were not handled at all, resulting in asserts.

See #14834.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-19 12:51:54 +00:00
Vadim Zeitlin
f31f9900e4 Add wxFSW_EVENT_ATTRIB wxFileSystemWatcher flag.
This flag allows to monitor changes to the file attributes, such as file
modification time.

This patch adds the flag, support for it under Linux and the corresponding
modifications to the sample and the test suite.

Closes #14833.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-17 23:56:00 +00:00
Vadim Zeitlin
b77bb705dd Support monitoring only some events in wxGTK wxFileSystemWatcher.
Call inotify() with the appropriate flags instead of always using IN_ALL_EVENTS.

Closes #14832.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-15 22:24:22 +00:00
Vadim Zeitlin
20ffcd779a Improve inotify()-based wxFileSystemWatcher to handle creation/deletion.
Handle creation and deletion of directories under the watched path better.

See #14544.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-16 14:02:40 +00:00
Vadim Zeitlin
0f306261b8 Fix bug in Unix wxFileSystemWatcher implementation when watch is deleted.
Don't assert when removing a watch descriptor from the stale descriptors list.

See #14544.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:49 +00:00
Vadim Zeitlin
6eef5763a8 Check for filespec when generating events in wxFileSystemWatcher.
Instead of setting watches on individual files when a non-empty filespec is
given, always watch all the files but just ignore the events from the ones not
matching the filespec. This makes the code simpler and fixes several bugs.

See #14544.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:25 +00:00
Paul Cornett
7d1214cd72 silence warnings about shadowed variables with GCC -Wshadow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-04 15:55:06 +00:00
Vadim Zeitlin
3c03599e71 Fix bogus asserts in Unix wxFileSystemWatcher for removed files.
Store the recently removed file descriptors and don't assert if we get an
event for one of them, this can happen and is normal unlike unexpected events
for completely unknown descriptors for which we still keep an assert.

Closes #14465.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-12 18:34:22 +00:00
Paul Cornett
41e027551c guard against empty name field in inotify_event, see #14466
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-06 16:39:08 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
5cd9986613 Refactor wxEventLoopSource-related code.
Currently wxEventLoopSource can't be created directly and can only be used to
monitor file descriptors so reduce the API to just wxEventLoop::AddSourceForFD()
and remove AddSource(), RemoveSource() and RemoveAllSources() which couldn't
be implemented for all ports. This makes the code much simpler without any
loss of functionality.

Make wxEventLoopSource responsible for removing itself from the event loop
when it is deleted. This allows to remove IsOk() and Invalidate() methods
making the code simpler and gets rid of various sets/maps which were used
before.

This also allows to support event loop sources in Carbon as well: wxOSX/Carbon
now compiles and works with wxUSE_FSWATCHER==1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:36:35 +00:00
Vadim Zeitlin
6b8ef0b35d Merge SOC2009_FSWATCHER branch into trunk.
Merges everything from the branch with only some minor changes, mostly renamed
wxUSE_FSWATCHER_{INOTIFY,KQUEUE} to wxHAS_{INOTIFY,KQUEUE}.

Add wxFileSystemWatcher and related classes.

Also introduces wxEventLoopSource.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:35:43 +00:00