From ddfb57a0ff3c389d55ff766f21402bc3911f65dd Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 5 Jun 2019 11:25:03 +0200 Subject: [PATCH] kernel: remove MakeImmutableString This was simply an alias for MakeImmutableNoRecurse, and calling it was a very minor (mostly: pointless) optimization compared to calling the more generic MakeImmutable. But crucially, the name was rather misleading, in particular when compared to MakeImmString. So, let's avoid some potential confusion (and the resulting source of bugs) with a teeny weeny de-optimization (that won't even be noticeable in practice). --- src/code.c | 4 ++-- src/gvars.c | 2 +- src/hpc/thread.c | 2 +- src/opers.c | 4 ++-- src/stringobj.c | 8 ++++---- src/stringobj.h | 14 ++------------ 6 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/code.c b/src/code.c index 10a1e85bfa..f8bb125cb1 100644 --- a/src/code.c +++ b/src/code.c @@ -192,7 +192,7 @@ Obj GET_FILENAME_BODY(Obj body) void SET_FILENAME_BODY(Obj body, Obj val) { GAP_ASSERT(IS_STRING_REP(val)); - MakeImmutableString(val); + MakeImmutable(val); BODY_HEADER(body)->filename_or_id = val; } @@ -220,7 +220,7 @@ Obj GET_LOCATION_BODY(Obj body) void SET_LOCATION_BODY(Obj body, Obj val) { GAP_ASSERT(IS_STRING_REP(val)); - MakeImmutableString(val); + MakeImmutable(val); BODY_HEADER(body)->startline_or_location = val; } diff --git a/src/gvars.c b/src/gvars.c index 6a58ec98a2..1d4e18b5c9 100644 --- a/src/gvars.c +++ b/src/gvars.c @@ -394,7 +394,7 @@ void AssGVarWithoutReadOnlyCheck(UInt gvar, Obj val) #endif if ( val != 0 && TNUM_OBJ(val) == T_FUNCTION && NAME_FUNC(val) == 0 ) { onam = CopyToStringRep(NameGVar(gvar)); - MakeImmutableString(onam); + MakeImmutable(onam); SET_NAME_FUNC(val, onam); CHANGED_BAG(val); } diff --git a/src/hpc/thread.c b/src/hpc/thread.c index a553c21f51..4a10f2b508 100644 --- a/src/hpc/thread.c +++ b/src/hpc/thread.c @@ -302,7 +302,7 @@ static Obj MakeImmString2(const Char * cstr1, const Char * cstr2) result = NEW_STRING(len1 + len2); memcpy(CSTR_STRING(result), cstr1, len1); memcpy(CSTR_STRING(result) + len1, cstr2, len2); - MakeImmutableString(result); + MakeImmutableNoRecurse(result); return result; } diff --git a/src/opers.c b/src/opers.c index 2915dd05ad..299b7caa53 100644 --- a/src/opers.c +++ b/src/opers.c @@ -2605,7 +2605,7 @@ static Obj WRAP_NAME(Obj name, const char *addon) ptr += name_len; *ptr++ = ')'; *ptr = 0; - MakeImmutableString(fname); + MakeImmutable(fname); return fname; } @@ -2622,7 +2622,7 @@ static Obj PREFIX_NAME(Obj name, const char *prefix) memcpy( ptr, CONST_CSTR_STRING(name), name_len ); ptr += name_len; *ptr = 0; - MakeImmutableString(fname); + MakeImmutable(fname); return fname; } diff --git a/src/stringobj.c b/src/stringobj.c index 707af2970f..56d4f55777 100644 --- a/src/stringobj.c +++ b/src/stringobj.c @@ -1197,7 +1197,7 @@ Obj ImmutableString(Obj string) { if (!IS_STRING_REP(string) || IS_MUTABLE_OBJ(string)) { string = CopyToStringRep(string); - MakeImmutableString(string); + MakeImmutableNoRecurse(string); } return string; } @@ -2116,9 +2116,9 @@ static Int InitKernel ( UnbListFuncs [ t1 ] = UnbString; } - MakeImmutableObjFuncs[ T_STRING ] = MakeImmutableString; - MakeImmutableObjFuncs[ T_STRING_SSORT ] = MakeImmutableString; - MakeImmutableObjFuncs[ T_STRING_NSORT ] = MakeImmutableString; + MakeImmutableObjFuncs[ T_STRING ] = MakeImmutableNoRecurse; + MakeImmutableObjFuncs[ T_STRING_SSORT ] = MakeImmutableNoRecurse; + MakeImmutableObjFuncs[ T_STRING_NSORT ] = MakeImmutableNoRecurse; /* return success */ return 0; diff --git a/src/stringobj.h b/src/stringobj.h index 7d75fca7f0..6017550ead 100644 --- a/src/stringobj.h +++ b/src/stringobj.h @@ -325,16 +325,6 @@ void ConvString(Obj string); Int IsStringConv(Obj obj); -/**************************************************************************** -** -*F MakeImmutableString( ) . . . . . . make a string immutable in place -*/ -EXPORT_INLINE void MakeImmutableString(Obj str) -{ - MakeImmutableNoRecurse(str); -} - - // Functions to create mutable and immutable GAP strings from C strings. // MakeString and MakeImmString are inlineable so 'strlen' can be optimised // away for constant strings. @@ -354,14 +344,14 @@ EXPORT_INLINE Obj MakeString(const char * cstr) EXPORT_INLINE Obj MakeImmString(const char * cstr) { Obj result = MakeString(cstr); - MakeImmutableString(result); + MakeImmutableNoRecurse(result); return result; } EXPORT_INLINE Obj MakeImmStringWithLen(const char * buf, size_t len) { Obj result = MakeStringWithLen(buf, len); - MakeImmutableString(result); + MakeImmutableNoRecurse(result); return result; }