diff options
Diffstat (limited to 'src/intervals.c')
| -rw-r--r-- | src/intervals.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/intervals.c b/src/intervals.c index 78e0f50f6fe..1c8dd41e6a2 100644 --- a/src/intervals.c +++ b/src/intervals.c | |||
| @@ -91,11 +91,9 @@ create_root_interval (Lisp_Object parent) | |||
| 91 | { | 91 | { |
| 92 | INTERVAL new; | 92 | INTERVAL new; |
| 93 | 93 | ||
| 94 | CHECK_IMPURE (parent); | ||
| 95 | |||
| 96 | new = make_interval (); | 94 | new = make_interval (); |
| 97 | 95 | ||
| 98 | if (BUFFERP (parent)) | 96 | if (! STRINGP (parent)) |
| 99 | { | 97 | { |
| 100 | new->total_length = (BUF_Z (XBUFFER (parent)) | 98 | new->total_length = (BUF_Z (XBUFFER (parent)) |
| 101 | - BUF_BEG (XBUFFER (parent))); | 99 | - BUF_BEG (XBUFFER (parent))); |
| @@ -103,15 +101,16 @@ create_root_interval (Lisp_Object parent) | |||
| 103 | set_buffer_intervals (XBUFFER (parent), new); | 101 | set_buffer_intervals (XBUFFER (parent), new); |
| 104 | new->position = BEG; | 102 | new->position = BEG; |
| 105 | } | 103 | } |
| 106 | else if (STRINGP (parent)) | 104 | else |
| 107 | { | 105 | { |
| 106 | CHECK_IMPURE (parent, XSTRING (parent)); | ||
| 108 | new->total_length = SCHARS (parent); | 107 | new->total_length = SCHARS (parent); |
| 109 | eassert (TOTAL_LENGTH (new) >= 0); | 108 | eassert (TOTAL_LENGTH (new) >= 0); |
| 110 | set_string_intervals (parent, new); | 109 | set_string_intervals (parent, new); |
| 111 | new->position = 0; | 110 | new->position = 0; |
| 112 | } | 111 | } |
| 113 | eassert (LENGTH (new) > 0); | 112 | eassert (LENGTH (new) > 0); |
| 114 | 113 | ||
| 115 | set_interval_object (new, parent); | 114 | set_interval_object (new, parent); |
| 116 | 115 | ||
| 117 | return new; | 116 | return new; |