rev 339 - in trunk: . include/prothon src

SVN User <[email protected]>
Newsgroups gmane.comp.lang.prothon.cvs
Message-ID <[email protected]>
Author: mark
Date: 2004-04-13 17:58:16 -0400 (Tue, 13 Apr 2004)
New Revision: 339

Modified:
   trunk/STATUS.txt
   trunk/include/prothon/prothon.h
   trunk/src/builtins-core.c
   trunk/src/interp.c
   trunk/src/object.c
   trunk/src/object.h
   trunk/src/symbol.c
Log:
changed all references to "clone" to "copy" to match Python

Modified: trunk/STATUS.txt
===================================================================
--- trunk/STATUS.txt	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/STATUS.txt	2004-04-13 21:58:16 UTC (rev 339)
@@ -3,7 +3,10 @@
 
 --- add list comprehension
 
+--- flesh out dlls, list.sort!(), dict stuff, string %
+
 --- add support for APR_BINARY in File.c ('b' flag)
+--- support any object that supports file methods in stdxxx (duck std)
 
 --- catch exceptions during module loading
 
@@ -12,8 +15,6 @@
 --- -d -m -l cmd-line options missing
 --- memory bounds -> mem-mgr priorities
 
---- flesh out dlls, list.sort!(), dict stuff, string %
-
 --- plug memory leaks -- add del_unlocks
 
 --- switch mro method to C3

Modified: trunk/include/prothon/prothon.h
===================================================================
--- trunk/include/prothon/prothon.h	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/include/prothon/prothon.h	2004-04-13 21:58:16 UTC (rev 339)
@@ -389,7 +389,7 @@
 	LEN,
 	MAX,
 	MIN,
-	CLONE,
+	COPY,
 
 	SYM_ENUM_COUNT
 } sym_enum_t;

Modified: trunk/src/builtins-core.c
===================================================================
--- trunk/src/builtins-core.c	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/src/builtins-core.c	2004-04-13 21:58:16 UTC (rev 339)
@@ -97,11 +97,11 @@
 	return OBJ(NONE);
 }
 
-DEF(Object, clone, NULL) {
-	obj_p clone;
+DEF(Object, copy, NULL) {
+	obj_p copy;
 	size_t cdata_size = 0;
 	if (self->unclonable) {
-		raise_exception(ist, OBJ(TYPE_EXC), "clone() not supported on this object");
+		raise_exception(ist, OBJ(TYPE_EXC), "copy() not supported on this object");
 		return NULL;
 	}
 	if (self->data_type == DATA_TYPE_DATAPTR) {
@@ -114,12 +114,12 @@
 		cdata_size = (size_t) cdata_len->data.i64;
 		del_unlock(cdata_len);
 	}
-	clone = clone_object(ist, self);
+	copy = copy_object(ist, self);
 	if (cdata_size) {
-		clone->data.ptr = pr_malloc(cdata_size);
-		memcpy(clone->data.ptr, self->data.ptr, cdata_size);
+		copy->data.ptr = pr_malloc(cdata_size);
+		memcpy(copy->data.ptr, self->data.ptr, cdata_size);
 	}
-	return clone;
+	return copy;
 }
 
 DEF(Object, has_proto_QUES, FORM_RPARAM) {
@@ -640,7 +640,7 @@
 {
 	MODULE_SUB_INIT(Object);
 	MODULE_ADD_SYM(Object, __init__);
-	MODULE_ADD_SYM(Object, clone);
+	MODULE_ADD_SYM(Object, copy);
 	MODULE_ADD_SYM(Object, set_read_access);
 	MODULE_ADD_SYM(Object, read_access);
 	MODULE_ADD_SYM(Object, read_access_str);

Modified: trunk/src/interp.c
===================================================================
--- trunk/src/interp.c	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/src/interp.c	2004-04-13 21:58:16 UTC (rev 339)
@@ -751,7 +751,7 @@
 			case OP_GEN:
 			case OP_DEF: {
 				int fparams_len = fr_data_int(1)*2;
-				obj_p func = call_func0(ist, fr_data(2), SYM(CLONE));
+				obj_p func = call_func0(ist, fr_data(2), SYM(COPY));
 				obj_p fparams_obj = new_list_obj(ist, fparams_len);
 				fr_sp -= fparams_len+2;
 				assert(sizeof(list_item_t) == sizeof(obj_p));

Modified: trunk/src/object.c
===================================================================
--- trunk/src/object.c	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/src/object.c	2004-04-13 21:58:16 UTC (rev 339)
@@ -245,26 +245,26 @@
 }
 
 
-//********************************* clone_object ******************************
+//********************************* copy_object ******************************
 // clones everything but data pointed to by data.ptr
-obj_p clone_object(isp ist, obj_p obj) {
-	obj_p clone;
+obj_p copy_object(isp ist, obj_p obj) {
+	obj_p copy;
 	attr_p new_attrp, attrp;
-	clone = new_object(ist, NULL);
-	memcpy(clone, obj, sizeof(*obj)-sizeof(obj->next_obj));
-	clone->archived       = FALSE;
-	clone->del_locked     = TRUE;
-	clone->rdlock_cnt     = 0;
-	clone->wrlock_req_cnt = 0;
-	clone->wrlock		  = 0;
+	copy = new_object(ist, NULL);
+	memcpy(copy, obj, sizeof(*obj)-sizeof(obj->next_obj));
+	copy->archived       = FALSE;
+	copy->del_locked     = TRUE;
+	copy->rdlock_cnt     = 0;
+	copy->wrlock_req_cnt = 0;
+	copy->wrlock		  = 0;
 	if (obj->has_attrs) {
 		size_t size;
 		attrp = obj->attr_proto.attrs;
 		size = attr_tsize(attrp)*sizeof(attr_t);
-		clone->attr_proto.attrs = new_attrp = pr_malloc(size);
+		copy->attr_proto.attrs = new_attrp = pr_malloc(size);
 		memcpy(new_attrp, attrp, size);
 	}
-	return clone;
+	return copy;
 }
 
 //********************************* free_object *******************************
@@ -1030,7 +1030,7 @@
 	rdlock_rtrn(list_obj) NULL;
 	llen = listlen(list_obj);
 	size = list_sizeof(llen);
-	res = clone_object(ist, list_obj);
+	res = copy_object(ist, list_obj);
 	res->data.ptr = list_ptr = pr_malloc(size);
 	lstpsize(list_ptr) = llen;
 	lstplen(list_ptr)  = llen;

Modified: trunk/src/object.h
===================================================================
--- trunk/src/object.h	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/src/object.h	2004-04-13 21:58:16 UTC (rev 339)
@@ -129,7 +129,7 @@
 
 void object_store_init(isp ist, int nop2);
 obj_p new_object(isp ist, obj_p proto);
-obj_p clone_object(isp ist, obj_p obj);
+obj_p copy_object(isp ist, obj_p obj);
 void free_object(obj_p obj);
 
 void set_item(isp ist, obj_p value, obj_p ref_self, obj_p ref_key);

Modified: trunk/src/symbol.c
===================================================================
--- trunk/src/symbol.c	2004-04-13 07:05:27 UTC (rev 338)
+++ trunk/src/symbol.c	2004-04-13 21:58:16 UTC (rev 339)
@@ -146,7 +146,7 @@
 	{ "len",			0 },
 	{ "max",			0 },
 	{ "min",			0 },
-	{ "clone",			0 }
+	{ "copy",			0 }
 };
 
 typedef struct trie_node_s* trie_p;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.