diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2012-06-02 09:37:54 -0700 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2012-06-02 09:37:54 -0700 |
| commit | 63810350ec7f26232fbd653f279c92f43b5c4807 (patch) | |
| tree | bc4881b40b8fc53d28d55f5f01f098342e8c2cff | |
| parent | 4cf9b38dd572979c53bc5a7892c27b2a40a6f039 (diff) | |
| download | emacs-63810350ec7f26232fbd653f279c92f43b5c4807.tar.gz | |
* 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.
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/sysdep.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1d48a6ff155..82ff4123b18 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 diff --git a/src/sysdep.c b/src/sysdep.c index a82f802a785..bf87fa2ff0b 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -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, |
