shithub: ircs

Download patch

ref: 78db7421d889f5af90135445bbdd996a5243e07d
parent: 9e1f7d750e447544d6893712d1bc25ba5d93e010
author: kemal <[email protected]>
date: Tue Oct 5 15:28:35 EDT 2021

ircs: remove redundant strdups, make emalloc global

--- /dev/null
+++ b/common.c
@@ -1,0 +1,15 @@
+#include <u.h>
+#include <libc.h>
+#include "dat.h"
+#include "fns.h"
+
+void *
+emalloc(ulong n)
+{
+	void *p;
+
+	if(p = mallocz(n, 1), p == nil)
+		sysfatal("mallocz: not enough mem");
+	setmalloctag(p, getcallerpc(&n));
+	return p;
+}
--- a/fns.h
+++ b/fns.h
@@ -1,3 +1,4 @@
+void*	emalloc(ulong);
 int	ircparse(Ircmsg *, char *);
 void	ircprint(Ircmsg *);
 int	ircischan(char *);
--- a/irc.c
+++ b/irc.c
@@ -1,6 +1,7 @@
 #include <u.h>
 #include <libc.h>
 #include "dat.h"
+#include "fns.h"
 
 static int
 ircprefix(Ircmsg *irc)
--- a/list.c
+++ b/list.c
@@ -1,6 +1,7 @@
 #include <u.h>
 #include <libc.h>
 #include "dat.h"
+#include "fns.h"
 
 int listallocs;
 
@@ -27,9 +28,7 @@
 			break;
 	if(l != nil)
 		return 0;
-	l = mallocz(sizeof(List), 1);
-	if(l == nil)
-		sysfatal("mallocz: %r");
+	l = emalloc(sizeof(List));
 	listallocs++;
 	l->val = val;
 	l->next = *lp;
--- a/main.c
+++ b/main.c
@@ -77,23 +77,13 @@
 static Trie *channels;
 static Trie *users;
 
-static void *
-emalloc(ulong n)
-{
-	void *p;
-
-	p = mallocz(n, 1);
-	if(p == nil)
-		sysfatal("mallocz: %r");
-	return p;
-}
-
 static char *
 estrdup(char *s)
 {
 	s = strdup(s);
 	if(s == nil)
-		sysfatal("strdup: %r");
+		sysfatal("strdup: not enough mem");
+	setmalloctag(s, getcallerpc(&s));
 	return s;
 }
 
@@ -950,14 +940,14 @@
 	if(p = strchr(nickuser, '!')){
 		*p = 0;
 		if(*(++p) != 0)
-			user = estrdup(p);
+			user = p;
 		else
-			user = estrdup(nickuser);
+			user = nickuser;
 	} else
-		user = estrdup(nickuser);
+		user = nickuser;
 
 	if(*nickuser != 0)
-		mynick = estrdup(nickuser);
+		mynick = nickuser;
 	else
 		sysfatal("empty nick");
 }
@@ -1005,7 +995,7 @@
 		userdb = 0;
 
 	if(service == nil)
-		service = estrdup("ircs");
+		service = "ircs";
 	else if(*service == 0)
 		sysfatal("empty srvname");
 
--- a/mkfile
+++ b/mkfile
@@ -3,6 +3,7 @@
 BIN=$home/bin/$objtype
 TARG=ircs
 OFILES=\
+	common.$O\
 	irc.$O\
 	ircfmt.$O\
 	list.$O\
--- a/trie.c
+++ b/trie.c
@@ -1,6 +1,7 @@
 #include <u.h>
 #include <libc.h>
 #include "dat.h"
+#include "fns.h"
 
 int trieallocs;
 int triedebug;
@@ -12,9 +13,7 @@
 {
 	Trie *t;
 
-	t = mallocz(sizeof(Trie), 1);
-	if(t == nil)
-		sysfatal("mallocz: %r");
+	t = emalloc(sizeof(Trie));
 	trieallocs++;
 	return t;
 }