Mercurial > hg > xemacs-beta
annotate src/vdb.c @ 5176:8b2f75cecb89
rename objects* (.c, .h and .el files) to fontcolor*
-------------------- ChangeLog entries follow: --------------------
etc/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* dbxrc.in:
Rename objects.c -> fontcolor.c.
lisp/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* dumped-lisp.el (preloaded-file-list):
* font.el (font-tty-find-closest-color):
* fontcolor.el:
* fontcolor.el (ws-object-property-1): Removed.
* fontcolor.el (fontcolor-property-1): New.
* fontcolor.el (font-name):
* fontcolor.el (font-ascent):
* fontcolor.el (font-descent):
* fontcolor.el (font-width):
* fontcolor.el (font-height):
* fontcolor.el (font-proportional-p):
* fontcolor.el (font-properties):
* fontcolor.el (font-truename):
* fontcolor.el (color-name):
* fontcolor.el (color-rgb-components):
* x-faces.el:
Rename objects.el -> fontcolor.el.
lwlib/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* lwlib-colors.h:
objects*.h -> fontcolor*.h.
man/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* internals/internals.texi (A Summary of the Various XEmacs Modules):
* internals/internals.texi (Modules for other Display-Related Lisp Objects):
objects*.[ch] -> fontcolor*.[ch].
nt/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* xemacs.dsp:
* xemacs.mak:
* xemacs.mak (OPT_OBJS):
objects*.[ch] -> fontcolor*.[ch].
src/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* EmacsFrame.c:
* Makefile.in.in (x_objs):
* Makefile.in.in (mswindows_objs):
* Makefile.in.in (tty_objs):
* Makefile.in.in (gtk_objs):
* Makefile.in.in (objs):
* console-tty.h:
* console-x-impl.h:
* console-x-impl.h (struct x_device):
* console-x.h:
* console-xlike-inc.h:
* depend:
* device-gtk.c:
* device-msw.c:
* device-x.c:
* device-x.c (x_init_device):
* device-x.c (x_finish_init_device):
* device.c:
* devslots.h (MARKED_SLOT):
* emacs.c (main_1):
* event-Xt.c:
* event-gtk.c:
* event-msw.c:
* faces.c:
* font-mgr.c:
* fontcolor-gtk-impl.h:
* fontcolor-gtk.c:
* fontcolor-gtk.c (syms_of_fontcolor_gtk):
* fontcolor-gtk.c (console_type_create_fontcolor_gtk):
* fontcolor-gtk.c (vars_of_fontcolor_gtk):
* fontcolor-gtk.h:
* fontcolor-impl.h:
* fontcolor-msw-impl.h:
* fontcolor-msw.c:
* fontcolor-msw.c (syms_of_fontcolor_mswindows):
* fontcolor-msw.c (console_type_create_fontcolor_mswindows):
* fontcolor-msw.c (reinit_vars_of_fontcolor_mswindows):
* fontcolor-msw.c (vars_of_fontcolor_mswindows):
* fontcolor-msw.h:
* fontcolor-msw.h (mswindows_color_to_string):
* fontcolor-tty-impl.h:
* fontcolor-tty.c:
* fontcolor-tty.c (syms_of_fontcolor_tty):
* fontcolor-tty.c (console_type_create_fontcolor_tty):
* fontcolor-tty.c (vars_of_fontcolor_tty):
* fontcolor-tty.h:
* fontcolor-x-impl.h:
* fontcolor-x.c:
* fontcolor-x.c (syms_of_fontcolor_x):
* fontcolor-x.c (console_type_create_fontcolor_x):
* fontcolor-x.c (vars_of_fontcolor_x):
* fontcolor-x.c (Xatoms_of_fontcolor_x):
* fontcolor-x.h:
* fontcolor.c:
* fontcolor.c (syms_of_fontcolor):
* fontcolor.c (specifier_type_create_fontcolor):
* fontcolor.c (reinit_specifier_type_create_fontcolor):
* fontcolor.c (reinit_vars_of_fontcolor):
* fontcolor.c (vars_of_fontcolor):
* fontcolor.h:
* fontcolor.h (set_face_boolean_attached_to):
* frame-gtk.c:
* frame-x.c:
* glyphs-eimage.c:
* glyphs-gtk.c:
* glyphs-msw.c:
* glyphs-widget.c:
* glyphs-x.c:
* glyphs.c:
* gtk-glue.c:
* gtk-glue.c (xemacs_type_register):
* gtk-xemacs.c:
* inline.c:
* intl-win32.c:
* lisp.h:
* lrecord.h:
* mule-charset.c:
* native-gtk-toolbar.c:
* redisplay-msw.c:
* redisplay-tty.c:
* redisplay.c:
* select-x.c:
* select.c:
* symsinit.h:
* toolbar-msw.c:
* toolbar-msw.c (TOOLBAR_ITEM_ID_BITS):
* toolbar-x.c:
* ui-gtk.c:
* window.c:
Rename objects*.[ch] -> fontcolor*.[ch]. Fix up all references to
the old files (e.g. in #include statements, Makefiles,
functions like syms_of_objects_x(), etc.).
tests/ChangeLog addition:
2010-02-22 Ben Wing <ben@xemacs.org>
* reproduce-crashes.el (8):
objects*.[ch] -> fontcolor*.[ch].
| author | Ben Wing <ben@xemacs.org> |
|---|---|
| date | Mon, 22 Feb 2010 06:49:30 -0600 |
| parents | f395ee7ad844 |
| children | 308d34e9f07d |
| rev | line source |
|---|---|
| 3092 | 1 /* Virtual diry bit implementation (platform independent) for XEmacs. |
| 2 Copyright (C) 2005 Marcus Crestani. | |
|
5042
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
3 Copyright (C) 2010 Ben Wing. |
| 3092 | 4 |
| 5 This file is part of XEmacs. | |
| 6 | |
| 7 XEmacs is free software; you can redistribute it and/or modify it | |
| 8 under the terms of the GNU General Public License as published by the | |
| 9 Free Software Foundation; either version 2, or (at your option) any | |
| 10 later version. | |
| 11 | |
| 12 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
| 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
| 15 for more details. | |
| 16 | |
| 17 You should have received a copy of the GNU General Public License | |
| 18 along with XEmacs; see the file COPYING. If not, write to | |
| 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 20 Boston, MA 02111-1307, USA. */ | |
| 21 | |
| 22 /* Synched up with: Not in FSF. */ | |
| 23 | |
| 24 #include <config.h> | |
| 25 #include "lisp.h" | |
| 26 #include "gc.h" | |
| 27 #include "mc-alloc.h" | |
| 28 #include "vdb.h" | |
| 29 | |
| 30 | |
| 31 typedef struct | |
| 32 { | |
| 33 Dynarr_declare (void *); | |
| 34 } void_ptr_dynarr; | |
| 35 | |
| 36 void_ptr_dynarr *page_fault_table; | |
| 37 | |
| 38 /* Init page fault table and protect heap. */ | |
| 39 void | |
| 40 vdb_start_dirty_bits_recording (void) | |
| 41 { | |
| 3303 | 42 Elemcount protected_pages = (Elemcount) protect_heap_pages (); |
| 3092 | 43 page_fault_table = Dynarr_new2 (void_ptr_dynarr, void *); |
| 3303 | 44 Dynarr_resize (page_fault_table, protected_pages); |
| 3092 | 45 } |
| 46 | |
| 47 /* Remove heap protection. */ | |
| 48 void | |
| 49 vdb_stop_dirty_bits_recording (void) | |
| 50 { | |
| 51 unprotect_heap_pages (); | |
| 52 } | |
| 53 | |
| 54 /* Read page fault table and pass page faults to garbage collector. */ | |
| 55 int | |
| 56 vdb_read_dirty_bits (void) | |
| 57 { | |
| 58 int repushed_objects = 0; | |
| 59 Elemcount count; | |
| 60 for (count = Dynarr_length (page_fault_table); count; count--) | |
| 61 repushed_objects += | |
| 62 repush_all_objects_on_page (Dynarr_at (page_fault_table, count - 1)); | |
| 63 Dynarr_free (page_fault_table); | |
| 64 page_fault_table = 0; | |
| 65 return repushed_objects; | |
| 66 } | |
| 67 | |
| 68 /* Called by the page fault handler: add address to page fault table. */ | |
| 69 void | |
| 70 vdb_designate_modified (void *addr) | |
| 71 { | |
| 72 Dynarr_add (page_fault_table, addr); | |
| 73 } | |
| 74 | |
| 75 | |
| 76 /* For testing and debugging... */ | |
| 77 | |
|
5042
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
78 #ifdef DEBUG_XEMACS |
|
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
79 |
| 3092 | 80 DEFUN ("test-vdb", Ftest_vdb, 0, 0, "", /* |
| 81 Test virtual dirty bit implementation. Prints results to stderr. | |
| 82 */ | |
| 83 ()) | |
| 84 { | |
| 85 Rawbyte *p; | |
| 86 char c; | |
| 87 Elemcount count; | |
| 88 | |
| 89 /* Wrap up gc (if currently running). */ | |
| 90 gc_full (); | |
| 91 | |
| 92 /* Allocate a buffer; it will have the default | |
| 93 protection of PROT_READ|PROT_WRITE. */ | |
| 94 p = (Rawbyte *) mc_alloc (mc_get_page_size()); | |
| 95 set_lheader_implementation ((struct lrecord_header *) p, &lrecord_cons); | |
| 4123 | 96 fprintf (stderr, "Allocate p: [%p ... %p], length %d\n", |
| 97 p, p + mc_get_page_size (), (int) mc_get_page_size ()); | |
| 3092 | 98 |
| 99 /* Test read. */ | |
| 100 fprintf (stderr, "Attempt to read p[666]... "); | |
| 101 c = p[666]; | |
| 102 fprintf (stderr, "read ok.\n"); | |
| 103 | |
| 104 /* Test write. */ | |
| 105 fprintf (stderr, "Attempt to write 42 to p[666]... "); | |
| 106 p[666] = 42; | |
| 107 fprintf (stderr, "write ok, p[666] = %d\n", p[666]); | |
| 108 | |
| 109 /* Mark the buffer read-only and set environemnt for write-barrier. */ | |
| 110 fprintf (stderr, "Write-protect the page.\n"); | |
| 111 MARK_BLACK (p); | |
| 112 vdb_start_dirty_bits_recording (); | |
| 113 write_barrier_enabled = 1; | |
| 114 | |
| 115 /* Test write-barrier read. */ | |
| 116 fprintf (stderr, "Attempt to read p[666]... "); | |
| 117 c = p[666]; | |
| 118 fprintf (stderr, "read ok.\n"); | |
| 119 | |
| 120 /* Test write-barrier write, program receives SIGSEGV. */ | |
| 121 fprintf (stderr, "Attempt to write 23 to p[666]... "); | |
| 122 p[666] = 23; | |
| 123 fprintf (stderr, "Written p[666] = %d\n", p[666]); | |
| 124 | |
| 125 /* Stop write-barrier mode. */ | |
| 126 write_barrier_enabled = 0; | |
| 127 MARK_WHITE (p); | |
| 128 vdb_unprotect (p, mc_get_page_size ()); | |
| 129 for (count = Dynarr_length (page_fault_table); count; count--) | |
| 130 if (Dynarr_at (page_fault_table, count - 1) == &p[666]) | |
| 4123 | 131 fprintf (stderr, "VALID page fault at %p\n", |
| 132 Dynarr_at (page_fault_table, count - 1)); | |
| 3092 | 133 else |
| 4123 | 134 fprintf (stderr, "WRONG page fault at %p\n", |
| 135 Dynarr_at (page_fault_table, count - 1)); | |
| 3092 | 136 Dynarr_free (page_fault_table); |
| 137 return Qnil; | |
| 138 } | |
| 139 | |
| 140 DEFUN ("test-segfault", Ftest_segfault, 0, 0, "", /* | |
| 141 Test virtual dirty bit implementation: provoke a segfault on purpose. | |
| 142 WARNING: this function causes a SEGFAULT on purpose and thus crashes | |
| 143 XEmacs! This is only used for debbugging, e.g. for testing how the | |
| 144 debugger behaves when XEmacs segfaults and the write barrier is | |
| 145 enabled. | |
| 146 */ | |
| 147 ()) | |
| 148 { | |
| 149 Rawbyte *q = 0; | |
| 150 q[0] = 23; | |
| 151 return Qnil; | |
| 152 } | |
| 153 | |
|
5042
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
154 #endif /* DEBUG_XEMACS */ |
|
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
155 |
| 3092 | 156 void |
| 157 syms_of_vdb (void) | |
| 158 { | |
|
5042
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
159 #ifdef DEBUG_XEMACS |
| 3092 | 160 DEFSUBR (Ftest_vdb); |
| 161 DEFSUBR (Ftest_segfault); | |
|
5042
f395ee7ad844
Fix some compile warnings, make vdb test code conditional on DEBUG_XEMACS
Ben Wing <ben@xemacs.org>
parents:
4123
diff
changeset
|
162 #endif /* DEBUG_XEMACS */ |
| 3092 | 163 } |
