* sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:

Convert pctcpu and pctmem to Lisp float properly.
Let the compiler fold better, as 100.0/0x8000 is exact.
This commit is contained in:
Paul Eggert 2012-06-02 09:37:54 -07:00
parent 4cf9b38dd5
commit 63810350ec
2 changed files with 8 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
* sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
Convert pctcpu and pctmem to Lisp float properly.
Let the compiler fold better, as 100.0/0x8000 is exact.
2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
* alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of

View file

@ -3107,8 +3107,8 @@ system_process_attributes (Lisp_Object pid)
attrs = Fcons (Fcons (Qrss, make_fixnum_or_float (pinfo.pr_rssize)), attrs);
/* pr_pctcpu and pr_pctmem are encoded as a fixed point 16 bit number in [0 ... 1]. */
attrs = Fcons (Fcons (Qpcpu, (pinfo.pr_pctcpu * 100.0) / (double)0x8000), attrs);
attrs = Fcons (Fcons (Qpmem, (pinfo.pr_pctmem * 100.0) / (double)0x8000), attrs);
attrs = Fcons (Fcons (Qpcpu, make_float (100.0 / 0x8000 * pinfo.pr_pctcpu)), attrs);
attrs = Fcons (Fcons (Qpmem, make_float (100.0 / 0x8000 * pinfo.pr_pctmem)), attrs);
decoded_cmd
= code_convert_string_norecord (make_unibyte_string (pinfo.pr_fname,