summaryrefslogtreecommitdiff
path: root/src/object.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/object.c')
-rw-r--r--src/object.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/object.c b/src/object.c
index 3d50b67e6..317e3bf56 100644
--- a/src/object.c
+++ b/src/object.c
@@ -123,6 +123,21 @@ robj *createStringObject(const char *ptr, size_t len) {
return createRawStringObject(ptr,len);
}
+/* Same as CreateRawStringObject, can return NULL if allocation fails */
+robj *tryCreateRawStringObject(const char *ptr, size_t len) {
+ sds str = sdstrynewlen(ptr,len);
+ if (!str) return NULL;
+ return createObject(OBJ_STRING, str);
+}
+
+/* Same as createStringObject, can return NULL if allocation fails */
+robj *tryCreateStringObject(const char *ptr, size_t len) {
+ if (len <= OBJ_ENCODING_EMBSTR_SIZE_LIMIT)
+ return createEmbeddedStringObject(ptr,len);
+ else
+ return tryCreateRawStringObject(ptr,len);
+}
+
/* Create a string object from a long long value. When possible returns a
* shared integer object, or at least an integer encoded one.
*