You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/09/02 21:16:40 UTC
[lucy-commits] [09/15] git commit: refs/heads/cfish-string-prep1 - Introduce
SStr_new_from_str, remove SStr_newf
Introduce SStr_new_from_str, remove SStr_newf
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/b38218a9
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/b38218a9
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/b38218a9
Branch: refs/heads/cfish-string-prep1
Commit: b38218a981ee4081dd45619924a123eb04d2ecd0
Parents: f8385c9
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Mon Sep 2 20:57:31 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Mon Sep 2 21:12:30 2013 +0200
----------------------------------------------------------------------
clownfish/runtime/core/Clownfish/String.c | 14 ++++++++------
clownfish/runtime/core/Clownfish/String.cfh | 4 ++--
core/Lucy/Index/ZombieKeyedHash.c | 2 +-
3 files changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/b38218a9/clownfish/runtime/core/Clownfish/String.c
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/String.c b/clownfish/runtime/core/Clownfish/String.c
index e2d58b2..92cc1c4 100644
--- a/clownfish/runtime/core/Clownfish/String.c
+++ b/clownfish/runtime/core/Clownfish/String.c
@@ -910,17 +910,19 @@ SStr_new(void *allocation) {
}
StackString*
-SStr_newf(void *allocation, size_t alloc_size, const char *pattern, ...) {
+SStr_new_from_str(void *allocation, size_t alloc_size, String *string) {
StackString *self
= (StackString*)VTable_Init_Obj(STACKSTRING, allocation);
self->cap = alloc_size - sizeof(StackString);
- self->size = 0;
+ self->size = Str_Get_Size(string);
self->ptr = ((char*)allocation) + sizeof(StackString);
- va_list args;
- va_start(args, pattern);
- SStr_VCatF(self, pattern, args);
- va_end(args);
+ if (alloc_size < sizeof(StackString) + self->size + 1) {
+ THROW(ERR, "alloc_size of StackString too small");
+ }
+
+ memcpy(self->ptr, Str_Get_Ptr8(string), self->size);
+ self->ptr[self->size] = '\0';
return self;
}
http://git-wip-us.apache.org/repos/asf/lucy/blob/b38218a9/clownfish/runtime/core/Clownfish/String.cfh
----------------------------------------------------------------------
diff --git a/clownfish/runtime/core/Clownfish/String.cfh b/clownfish/runtime/core/Clownfish/String.cfh
index 13cf2d8..8c4618f 100644
--- a/clownfish/runtime/core/Clownfish/String.cfh
+++ b/clownfish/runtime/core/Clownfish/String.cfh
@@ -377,10 +377,10 @@ class Clownfish::StackString cnick SStr
* @param allocation A single block of memory which will be used for both
* the StackString object and its buffer.
* @param alloc_size The size of the allocation.
- * @param pattern A format pattern.
+ * @param string String to be copied.
*/
inert incremented StackString*
- newf(void *allocation, size_t alloc_size, const char *pattern, ...);
+ new_from_str(void *allocation, size_t alloc_size, String *string);
inert incremented StackString*
wrap(void *allocation, const String *source);
http://git-wip-us.apache.org/repos/asf/lucy/blob/b38218a9/core/Lucy/Index/ZombieKeyedHash.c
----------------------------------------------------------------------
diff --git a/core/Lucy/Index/ZombieKeyedHash.c b/core/Lucy/Index/ZombieKeyedHash.c
index b9ae141..2747888 100644
--- a/core/Lucy/Index/ZombieKeyedHash.c
+++ b/core/Lucy/Index/ZombieKeyedHash.c
@@ -49,7 +49,7 @@ ZKHash_Make_Key_IMP(ZombieKeyedHash *self, Obj *key, int32_t hash_sum) {
String *source = (String*)key;
size_t size = SStr_size() + Str_Get_Size(source) + 1;
void *allocation = MemPool_Grab(ivars->mem_pool, size);
- retval = (Obj*)SStr_newf(allocation, size, "%o", source);
+ retval = (Obj*)SStr_new_from_str(allocation, size, source);
}
break;
case FType_INT32: {