ladybird/Userland
Andreas Kling bc319d9e88 LibCore: Make CObject reference-counted
Okay, I've spent a whole day on this now, and it finally kinda works!
With this patch, CObject and all of its derived classes are reference
counted instead of tree-owned.

The previous, Qt-like model was nice and familiar, but ultimately also
outdated and difficult to reason about.

CObject-derived types should now be stored in RefPtr/NonnullRefPtr and
each class can be constructed using the forwarding construct() helper:

    auto widget = GWidget::construct(parent_widget);

Note that construct() simply forwards all arguments to an existing
constructor. It is inserted into each class by the C_OBJECT macro,
see CObject.h to understand how that works.

CObject::delete_later() disappears in this patch, as there is no longer
a single logical owner of a CObject.
2019-09-22 00:25:25 +02:00
..
al.cpp Userland: Fix many compiler warnings. 2019-06-22 15:47:08 +02:00
allocate.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
aplay.cpp LibCore: Make CObject reference-counted 2019-09-22 00:25:25 +02:00
avol.cpp LibCore: Make CObject reference-counted 2019-09-22 00:25:25 +02:00
basename.cpp Userland: Add a /bin/basename program. 2019-04-15 13:57:09 +02:00
cat.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
chmod.cpp chmod: Add understanding of simple permission strings. (#295) 2019-07-13 19:36:02 +02:00
chown.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
clear.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
copy.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
cp.cpp cp: Implement directory copying 2019-09-07 16:54:49 +02:00
crash.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
cut.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
date.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
df.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
dmesg.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
echo.cpp Userland: Add a simple /bin/echo program. 2019-04-25 04:42:09 +02:00
env.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
false.cpp Build LibC and Userland with clang as well. 2018-11-09 14:29:00 +01:00
fgrep.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
head.cpp Userland: Fix many compiler warnings. 2019-06-22 15:47:08 +02:00
host.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
hostname.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
id.cpp Userland: Fixed "id" usage error typo (#254) 2019-06-30 07:36:14 +02:00
ifconfig.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
jp.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
kill.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
killall.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
ln.cpp Userland: Fix many compiler warnings. 2019-06-22 15:47:08 +02:00
ls.cpp ls: Add -h (human readable) output switch 2019-09-11 18:59:13 +02:00
lspci.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
Makefile LibThread: Introduce a new threading library 2019-08-26 11:31:14 +02:00
mkdir.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
mknod.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
mon.cpp Kernel: Add a mechanism for listening for changes to an inode. 2019-07-22 20:01:11 +02:00
more.cpp more: Don't printf(string), printf("%s", string)! 2019-08-01 11:39:41 +02:00
mount.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
mv.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
nc.cpp Userland: Make sure sockaddr_len is initialised correctly in nc 2019-08-10 08:51:20 +02:00
pape.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
paste.cpp Userland: Add copy and paste commands 2019-09-17 21:56:42 +02:00
pidof.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
ping.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
ps.cpp ps: Widen state field to fit "Condition" and other fields 2019-07-18 07:23:26 +02:00
realpath.cpp Userland: Add realpath 2019-08-25 19:47:37 +02:00
reboot.cpp Kernel+Userland: Addd reboot syscall (#334) 2019-07-19 09:58:12 +02:00
rm.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
rmdir.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
rpcdump.cpp LibCore: Convert CLocalSocket to ObjectPtr 2019-09-21 15:25:08 +02:00
shutdown.cpp Kernel: Only allow superuser to halt() the system (#342) 2019-07-19 13:08:26 +02:00
sleep.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
sort.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
stat.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
strace.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
su.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
sync.cpp Add sync() syscall and a /bin/sync. 2018-12-20 00:39:29 +01:00
sysctl.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
tail.cpp LibCore: Convert CFile to ObjectPtr 2019-09-21 20:50:06 +02:00
tee.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
top.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
touch.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
tr.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
true.cpp Build LibC and Userland with clang as well. 2018-11-09 14:29:00 +01:00
truncate.cpp Userland: Implement truncate command 2019-08-05 08:36:28 +02:00
tty.cpp Fix all current build warnings in the userland. 2018-11-09 10:19:33 +01:00
umount.cpp Kernel: Added unmount ability to VFS 2019-08-17 09:29:54 +02:00
uname.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
uptime.cpp Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
wc.cpp Add stdin support to wc program 2019-09-12 07:47:19 +02:00
which.cpp AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
whoami.cpp Userland: Add /bin/whoami 2019-05-16 20:18:17 +02:00
yes.cpp Userland: Add a /bin/yes program (fixes #110) 2019-06-01 12:16:55 +02:00