From: Steve Peters Date: Fri, 28 Dec 2007 05:05:50 +0000 (+0000) Subject: SvPVX_const() triggers an assertion that when the sv isn't a PV. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=662f1f9e0a1bbee45e1e02386151364c8517604e;p=p5sagit%2Fp5-mst-13.2.git SvPVX_const() triggers an assertion that when the sv isn't a PV. Back this down to just checking to see if the sv is a PV or not. p4raw-id: //depot/perl@32750 --- diff --git a/ext/Encode/ucm/cp858.ucm b/ext/Encode/ucm/cp858.ucm new file mode 100644 index 0000000..29fa1b1 --- /dev/null +++ b/ext/Encode/ucm/cp858.ucm @@ -0,0 +1,274 @@ + "cp858" + 1 + 1 + \x3f +CHARMAP + \x00 |0 # NULL + \x01 |0 # START OF HEADING + \x02 |0 # START OF TEXT + \x03 |0 # END OF TEXT + \x04 |0 # END OF TRANSMISSION + \x05 |0 # ENQUIRY + \x06 |0 # ACKNOWLEDGE + \x07 |0 # BELL + \x08 |0 # BACKSPACE + \x09 |0 # HORIZONTAL TABULATION + \x0A |0 # + \x0B |0 # + \x0C |0 # + \x0D |0 # + \x0E |0 # + \x0F |0 # + \x0a |0 # LINE FEED + \x0b |0 # VERTICAL TABULATION + \x0c |0 # FORM FEED + \x0d |0 # CARRIAGE RETURN + \x0e |0 # SHIFT OUT + \x0f |0 # SHIFT IN + \x10 |0 # DATA LINK ESCAPE + \x11 |0 # DEVICE CONTROL ONE + \x12 |0 # DEVICE CONTROL TWO + \x13 |0 # DEVICE CONTROL THREE + \x14 |0 # DEVICE CONTROL FOUR + \x15 |0 # NEGATIVE ACKNOWLEDGE + \x16 |0 # SYNCHRONOUS IDLE + \x17 |0 # END OF TRANSMISSION BLOCK + \x18 |0 # CANCEL + \x19 |0 # END OF MEDIUM + \x1A |0 # + \x1B |0 # + \x1C |0 # + \x1D |0 # + \x1E |0 # + \x1F |0 # + \x1a |0 # SUBSTITUTE + \x1b |0 # ESCAPE + \x1c |0 # FILE SEPARATOR + \x1d |0 # GROUP SEPARATOR + \x1e |0 # RECORD SEPARATOR + \x1f |0 # UNIT SEPARATOR + \x20 |0 # SPACE + \x21 |0 # EXCLAMATION MARK + \x22 |0 # QUOTATION MARK + \x23 |0 # NUMBER SIGN + \x24 |0 # DOLLAR SIGN + \x25 |0 # PERCENT SIGN + \x26 |0 # AMPERSAND + \x27 |0 # APOSTROPHE + \x28 |0 # LEFT PARENTHESIS + \x29 |0 # RIGHT PARENTHESIS + \x2a |0 # ASTERISK + \x2b |0 # PLUS SIGN + \x2c |0 # COMMA + \x2d |0 # HYPHEN-MINUS + \x2e |0 # FULL STOP + \x2f |0 # SOLIDUS + \x30 |0 # DIGIT ZERO + \x31 |0 # DIGIT ONE + \x32 |0 # DIGIT TWO + \x33 |0 # DIGIT THREE + \x34 |0 # DIGIT FOUR + \x35 |0 # DIGIT FIVE + \x36 |0 # DIGIT SIX + \x37 |0 # DIGIT SEVEN + \x38 |0 # DIGIT EIGHT + \x39 |0 # DIGIT NINE + \x3a |0 # COLON + \x3b |0 # SEMICOLON + \x3c |0 # LESS-THAN SIGN + \x3d |0 # EQUALS SIGN + \x3e |0 # GREATER-THAN SIGN + \x3f |0 # QUESTION MARK + \x40 |0 # COMMERCIAL AT + \x41 |0 # LATIN CAPITAL LETTER A + \x42 |0 # LATIN CAPITAL LETTER B + \x43 |0 # LATIN CAPITAL LETTER C + \x44 |0 # LATIN CAPITAL LETTER D + \x45 |0 # LATIN CAPITAL LETTER E + \x46 |0 # LATIN CAPITAL LETTER F + \x47 |0 # LATIN CAPITAL LETTER G + \x48 |0 # LATIN CAPITAL LETTER H + \x49 |0 # LATIN CAPITAL LETTER I + \x4a |0 # LATIN CAPITAL LETTER J + \x4b |0 # LATIN CAPITAL LETTER K + \x4c |0 # LATIN CAPITAL LETTER L + \x4d |0 # LATIN CAPITAL LETTER M + \x4e |0 # LATIN CAPITAL LETTER N + \x4f |0 # LATIN CAPITAL LETTER O + \x50 |0 # LATIN CAPITAL LETTER P + \x51 |0 # LATIN CAPITAL LETTER Q + \x52 |0 # LATIN CAPITAL LETTER R + \x53 |0 # LATIN CAPITAL LETTER S + \x54 |0 # LATIN CAPITAL LETTER T + \x55 |0 # LATIN CAPITAL LETTER U + \x56 |0 # LATIN CAPITAL LETTER V + \x57 |0 # LATIN CAPITAL LETTER W + \x58 |0 # LATIN CAPITAL LETTER X + \x59 |0 # LATIN CAPITAL LETTER Y + \x5a |0 # LATIN CAPITAL LETTER Z + \x5b |0 # LEFT SQUARE BRACKET + \x5c |0 # REVERSE SOLIDUS + \x5d |0 # RIGHT SQUARE BRACKET + \x5e |0 # CIRCUMFLEX ACCENT + \x5f |0 # LOW LINE + \x60 |0 # GRAVE ACCENT + \x61 |0 # LATIN SMALL LETTER A + \x62 |0 # LATIN SMALL LETTER B + \x63 |0 # LATIN SMALL LETTER C + \x64 |0 # LATIN SMALL LETTER D + \x65 |0 # LATIN SMALL LETTER E + \x66 |0 # LATIN SMALL LETTER F + \x67 |0 # LATIN SMALL LETTER G + \x68 |0 # LATIN SMALL LETTER H + \x69 |0 # LATIN SMALL LETTER I + \x6a |0 # LATIN SMALL LETTER J + \x6b |0 # LATIN SMALL LETTER K + \x6c |0 # LATIN SMALL LETTER L + \x6d |0 # LATIN SMALL LETTER M + \x6e |0 # LATIN SMALL LETTER N + \x6f |0 # LATIN SMALL LETTER O + \x70 |0 # LATIN SMALL LETTER P + \x71 |0 # LATIN SMALL LETTER Q + \x72 |0 # LATIN SMALL LETTER R + \x73 |0 # LATIN SMALL LETTER S + \x74 |0 # LATIN SMALL LETTER T + \x75 |0 # LATIN SMALL LETTER U + \x76 |0 # LATIN SMALL LETTER V + \x77 |0 # LATIN SMALL LETTER W + \x78 |0 # LATIN SMALL LETTER X + \x79 |0 # LATIN SMALL LETTER Y + \x7a |0 # LATIN SMALL LETTER Z + \x7b |0 # LEFT CURLY BRACKET + \x7c |0 # VERTICAL LINE + \x7d |0 # RIGHT CURLY BRACKET + \x7e |0 # TILDE + \x7f |0 # DELETE + \xff |0 # NO-BREAK SPACE + \xad |0 # INVERTED EXCLAMATION MARK + \xbd |0 # CENT SIGN + \x9c |0 # POUND SIGN + \xcf |0 # CURRENCY SIGN + \xbe |0 # YEN SIGN + \xdd |0 # BROKEN BAR + \xf5 |0 # SECTION SIGN + \xf9 |0 # DIAERESIS + \xb8 |0 # COPYRIGHT SIGN + \xa6 |0 # FEMININE ORDINAL INDICATOR + \xae |0 # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + \xaa |0 # NOT SIGN + \xf0 |0 # SOFT HYPHEN + \xa9 |0 # REGISTERED SIGN + \xee |0 # MACRON + \xf8 |0 # DEGREE SIGN + \xf1 |0 # PLUS-MINUS SIGN + \xfd |0 # SUPERSCRIPT TWO + \xfc |0 # SUPERSCRIPT THREE + \xef |0 # ACUTE ACCENT + \xe6 |0 # MICRO SIGN + \xf4 |0 # PILCROW SIGN + \xfa |0 # MIDDLE DOT + \xf7 |0 # CEDILLA + \xfb |0 # SUPERSCRIPT ONE + \xa7 |0 # MASCULINE ORDINAL INDICATOR + \xaf |0 # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + \xac |0 # VULGAR FRACTION ONE QUARTER + \xab |0 # VULGAR FRACTION ONE HALF + \xf3 |0 # VULGAR FRACTION THREE QUARTERS + \xa8 |0 # INVERTED QUESTION MARK + \xb7 |0 # LATIN CAPITAL LETTER A WITH GRAVE + \xb5 |0 # LATIN CAPITAL LETTER A WITH ACUTE + \xb6 |0 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX + \xc7 |0 # LATIN CAPITAL LETTER A WITH TILDE + \x8e |0 # LATIN CAPITAL LETTER A WITH DIAERESIS + \x8f |0 # LATIN CAPITAL LETTER A WITH RING ABOVE + \x92 |0 # LATIN CAPITAL LIGATURE AE + \x80 |0 # LATIN CAPITAL LETTER C WITH CEDILLA + \xd4 |0 # LATIN CAPITAL LETTER E WITH GRAVE + \x90 |0 # LATIN CAPITAL LETTER E WITH ACUTE + \xd2 |0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX + \xd3 |0 # LATIN CAPITAL LETTER E WITH DIAERESIS + \xde |0 # LATIN CAPITAL LETTER I WITH GRAVE + \xd6 |0 # LATIN CAPITAL LETTER I WITH ACUTE + \xd7 |0 # LATIN CAPITAL LETTER I WITH CIRCUMFLEX + \xd8 |0 # LATIN CAPITAL LETTER I WITH DIAERESIS + \xd1 |0 # LATIN CAPITAL LETTER ETH + \xa5 |0 # LATIN CAPITAL LETTER N WITH TILDE + \xe3 |0 # LATIN CAPITAL LETTER O WITH GRAVE + \xe0 |0 # LATIN CAPITAL LETTER O WITH ACUTE + \xe2 |0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX + \xe5 |0 # LATIN CAPITAL LETTER O WITH TILDE + \x99 |0 # LATIN CAPITAL LETTER O WITH DIAERESIS + \x9e |0 # MULTIPLICATION SIGN + \x9d |0 # LATIN CAPITAL LETTER O WITH STROKE + \xeb |0 # LATIN CAPITAL LETTER U WITH GRAVE + \xe9 |0 # LATIN CAPITAL LETTER U WITH ACUTE + \xea |0 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX + \x9a |0 # LATIN CAPITAL LETTER U WITH DIAERESIS + \xed |0 # LATIN CAPITAL LETTER Y WITH ACUTE + \xe8 |0 # LATIN CAPITAL LETTER THORN + \xe1 |0 # LATIN SMALL LETTER SHARP S + \x85 |0 # LATIN SMALL LETTER A WITH GRAVE + \xa0 |0 # LATIN SMALL LETTER A WITH ACUTE + \x83 |0 # LATIN SMALL LETTER A WITH CIRCUMFLEX + \xc6 |0 # LATIN SMALL LETTER A WITH TILDE + \x84 |0 # LATIN SMALL LETTER A WITH DIAERESIS + \x86 |0 # LATIN SMALL LETTER A WITH RING ABOVE + \x91 |0 # LATIN SMALL LIGATURE AE + \x87 |0 # LATIN SMALL LETTER C WITH CEDILLA + \x8a |0 # LATIN SMALL LETTER E WITH GRAVE + \x82 |0 # LATIN SMALL LETTER E WITH ACUTE + \x88 |0 # LATIN SMALL LETTER E WITH CIRCUMFLEX + \x89 |0 # LATIN SMALL LETTER E WITH DIAERESIS + \x8d |0 # LATIN SMALL LETTER I WITH GRAVE + \xa1 |0 # LATIN SMALL LETTER I WITH ACUTE + \x8c |0 # LATIN SMALL LETTER I WITH CIRCUMFLEX + \x8b |0 # LATIN SMALL LETTER I WITH DIAERESIS + \xd0 |0 # LATIN SMALL LETTER ETH + \xa4 |0 # LATIN SMALL LETTER N WITH TILDE + \x95 |0 # LATIN SMALL LETTER O WITH GRAVE + \xa2 |0 # LATIN SMALL LETTER O WITH ACUTE + \x93 |0 # LATIN SMALL LETTER O WITH CIRCUMFLEX + \xe4 |0 # LATIN SMALL LETTER O WITH TILDE + \x94 |0 # LATIN SMALL LETTER O WITH DIAERESIS + \xf6 |0 # DIVISION SIGN + \x9b |0 # LATIN SMALL LETTER O WITH STROKE + \x97 |0 # LATIN SMALL LETTER U WITH GRAVE + \xa3 |0 # LATIN SMALL LETTER U WITH ACUTE + \x96 |0 # LATIN SMALL LETTER U WITH CIRCUMFLEX + \x81 |0 # LATIN SMALL LETTER U WITH DIAERESIS + \xec |0 # LATIN SMALL LETTER Y WITH ACUTE + \xe7 |0 # LATIN SMALL LETTER THORN + \x98 |0 # LATIN SMALL LETTER Y WITH DIAERESIS + \xd5 |0 # EURO SIGN + \x9f |0 # LATIN SMALL LETTER F WITH HOOK + \xf2 |0 # DOUBLE LOW LINE + \xc4 |0 # BOX DRAWINGS LIGHT HORIZONTAL + \xb3 |0 # BOX DRAWINGS LIGHT VERTICAL + \xda |0 # BOX DRAWINGS LIGHT DOWN AND RIGHT + \xbf |0 # BOX DRAWINGS LIGHT DOWN AND LEFT + \xc0 |0 # BOX DRAWINGS LIGHT UP AND RIGHT + \xd9 |0 # BOX DRAWINGS LIGHT UP AND LEFT + \xc3 |0 # BOX DRAWINGS LIGHT VERTICAL AND RIGHT + \xb4 |0 # BOX DRAWINGS LIGHT VERTICAL AND LEFT + \xc2 |0 # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + \xc1 |0 # BOX DRAWINGS LIGHT UP AND HORIZONTAL + \xc5 |0 # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + \xcd |0 # BOX DRAWINGS DOUBLE HORIZONTAL + \xba |0 # BOX DRAWINGS DOUBLE VERTICAL + \xc9 |0 # BOX DRAWINGS DOUBLE DOWN AND RIGHT + \xbb |0 # BOX DRAWINGS DOUBLE DOWN AND LEFT + \xc8 |0 # BOX DRAWINGS DOUBLE UP AND RIGHT + \xbc |0 # BOX DRAWINGS DOUBLE UP AND LEFT + \xcc |0 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + \xb9 |0 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT + \xcb |0 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + \xca |0 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL + \xce |0 # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + \xdf |0 # UPPER HALF BLOCK + \xdc |0 # LOWER HALF BLOCK + \xdb |0 # FULL BLOCK + \xb0 |0 # LIGHT SHADE + \xb1 |0 # MEDIUM SHADE + \xb2 |0 # DARK SHADE + \xfe |0 # BLACK SQUARE +END CHARMAP diff --git a/sv.h b/sv.h index 8e2417c..e61b260 100644 --- a/sv.h +++ b/sv.h @@ -1448,7 +1448,7 @@ the scalar's value cannot change unless written to. STMT_START { \ if (SvTYPE(sv) < SVt_PV && SvTYPE(sv) != SVt_IV) \ sv_upgrade(sv, SVt_IV); \ - else if (SvPVX_const(sv)) { \ + else if (SvTYPE(sv) >= SVt_PV) { \ SvPV_free(sv); \ SvLEN_set(sv, 0); \ SvCUR_set(sv, 0); \