[svn:parrot] r40503 - branches/auto_attrs/src/pmc
NotFound at svn.parrot.org
NotFound at svn.parrot.org
Wed Aug 12 12:16:52 UTC 2009
Author: NotFound
Date: Wed Aug 12 12:16:50 2009
New Revision: 40503
URL: https://trac.parrot.org/parrot/changeset/40503
Log:
set auto_attrs on Socket and Sockaddr PMCs
Modified:
branches/auto_attrs/src/pmc/sockaddr.pmc
branches/auto_attrs/src/pmc/socket.pmc
Modified: branches/auto_attrs/src/pmc/sockaddr.pmc
==============================================================================
--- branches/auto_attrs/src/pmc/sockaddr.pmc Wed Aug 12 11:45:29 2009 (r40502)
+++ branches/auto_attrs/src/pmc/sockaddr.pmc Wed Aug 12 12:16:50 2009 (r40503)
@@ -29,7 +29,7 @@
}
#endif
-pmclass Sockaddr need_ext {
+pmclass Sockaddr need_ext auto_attrs {
ATTR void *pointer; /* The stored pointer. */
/*
@@ -44,10 +44,10 @@
VTABLE void init() {
Parrot_Sockaddr_attributes * const pdata_struct =
- mem_allocate_typed(Parrot_Sockaddr_attributes);
+ (Parrot_Sockaddr_attributes *) PMC_data(SELF);
- PMC_data(SELF) = pdata_struct;
pdata_struct->pointer = mem_allocate_zeroed_typed(struct sockaddr_in);
+ PObj_active_destroy_SET(SELF);
}
/*
@@ -65,8 +65,7 @@
if (data) {
mem_sys_free(data->pointer);
- mem_sys_free(data);
- PMC_data(SELF) = NULL;
+ data->pointer = NULL;
}
}
Modified: branches/auto_attrs/src/pmc/socket.pmc
==============================================================================
--- branches/auto_attrs/src/pmc/socket.pmc Wed Aug 12 11:45:29 2009 (r40502)
+++ branches/auto_attrs/src/pmc/socket.pmc Wed Aug 12 12:16:50 2009 (r40503)
@@ -20,7 +20,7 @@
#include "../src/io/io_private.h"
-pmclass Socket extends Handle {
+pmclass Socket extends Handle auto_attrs {
ATTR PMC *local; /* Local addr */
ATTR PMC *remote; /* Remote addr */
@@ -36,9 +36,8 @@
VTABLE void init() {
Parrot_Socket_attributes *data_struct =
- mem_allocate_zeroed_typed(Parrot_Socket_attributes);
+ (Parrot_Socket_attributes *) PMC_data(SELF);
- PMC_data(SELF) = data_struct;
data_struct->local = PMCNULL;
data_struct->remote = PMCNULL;
@@ -119,7 +118,6 @@
Parrot_io_close_piohandle(interp, data_struct->os_handle);
data_struct->os_handle = PIO_INVALID_HANDLE;
}
- PMC_data(SELF) = NULL;
}
/*
More information about the parrot-commits
mailing list