Browse Source

rpc: constify data, localize unnecessarily static data

 text+data text+rodata    rwdata       bss filename
-     2308        2284        24        24 libc/inet/rpc/clnt_unix.o
+     2308        2308         0         0 libc/inet/rpc/clnt_unix.o
Denis Vlasenko 15 years ago
parent
commit
c09ca83b46
2 changed files with 6 additions and 2 deletions
  1. 4 0
      include/rpc/clnt.h
  2. 2 2
      libc/inet/rpc/clnt_unix.c

+ 4 - 0
include/rpc/clnt.h

@@ -132,6 +132,10 @@ struct rpc_err {
 typedef struct CLIENT CLIENT;
 struct CLIENT {
   AUTH	*cl_auth;		 /* authenticator */
+  /* not sure whether non-const-ness is a part of the spec... if it is,
+   * enclose "const" in #ifdef UCLIBC_INTERNAL / #endif
+   * to make it effective only for libc compile */
+  const
   struct clnt_ops {
     enum clnt_stat (*cl_call) (CLIENT *, u_long, xdrproc_t, caddr_t, xdrproc_t,
 			       caddr_t, struct timeval);

+ 2 - 2
libc/inet/rpc/clnt_unix.c

@@ -116,7 +116,7 @@ static bool_t clntunix_freeres (CLIENT *, xdrproc_t, caddr_t);
 static bool_t clntunix_control (CLIENT *, int, char *);
 static void clntunix_destroy (CLIENT *);
 
-static struct clnt_ops unix_ops =
+static const struct clnt_ops unix_ops =
 {
   clntunix_call,
   clntunix_abort,
@@ -474,7 +474,7 @@ __msgread (int sock, void *data, size_t cnt)
   struct iovec iov;
   struct msghdr msg;
 #ifdef SCM_CREDENTIALS
-  static char cm[CMSG_SPACE(sizeof (struct ucred))];
+  /*static -why??*/ char cm[CMSG_SPACE(sizeof (struct ucred))];
 #endif
   int len;