Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualFDsagizi

Posted 20 April 2013 - 01:09 AM

i think i'ts no big task, i can modificate addons, but i have small problem for do this

 

in angelscript.h - have

 

 
typedef void *(*asALLOCFUNC_t)(size_t);
typedef void (*asFREEFUNC_t)(void *);

 

 

but  asNEW, asDELTE, asNEWARRAY and asDELETEARRAY we can't use from CScriptArray besoce he live in
 
as_memory.h
 
extern asALLOCFUNC_t userAlloc;
extern asFREEFUNC_t  userFree;


// We don't overload the new operator as that would affect the application as well


#ifndef AS_DEBUG


#define asNEW(x)        new(userAlloc(sizeof(x))) x
#define asDELETE(ptr,x) {void *tmp = ptr; (ptr)->~x(); userFree(tmp);}


#define asNEWARRAY(x,cnt)  (x*)userAlloc(sizeof(x)*cnt)
#define asDELETEARRAY(ptr) userFree(ptr)


#else


typedef void *(*asALLOCFUNCDEBUG_t)(size_t, const char *, unsigned int);


#define asNEW(x)        new(((asALLOCFUNCDEBUG_t)(userAlloc))(sizeof(x), __FILE__, __LINE__)) x
#define asDELETE(ptr,x) {void *tmp = ptr; (ptr)->~x(); userFree(tmp);}


#define asNEWARRAY(x,cnt)  (x*)((asALLOCFUNCDEBUG_t)(userAlloc))(sizeof(x)*cnt, __FILE__, __LINE__)
#define asDELETEARRAY(ptr) userFree(ptr)


#endif

 

need move asNEW, asDELTE, asNEWARRAY and asDELETEARRAY from as_memory to angelscript.h for we can use this. 

 

added:

 

ans so, if addons will be use asNEW, what will be with this code:

 

 

#if defined(__S3E__) // Marmalade doesn't understand (nothrow)
newBuffer = (SArrayBuffer*)new asBYTE[sizeof(SArrayBuffer)-1 + elementSize*(buffer->numElements + delta)];
#else
newBuffer = (SArrayBuffer*)new (nothrow) asBYTE[sizeof(SArrayBuffer)-1 + elementSize*(buffer->numElements + delta)];
#endif
 

 


#1FDsagizi

Posted 20 April 2013 - 12:50 AM

i think i'ts no big task, i can modificate addons, but i have small problem for do this

 

in angelscript.h - have

 

 
typedef void *(*asALLOCFUNC_t)(size_t);
typedef void (*asFREEFUNC_t)(void *);

 

 

but  asNEW, asDELTE, asNEWARRAY and asDELETEARRAY we can't use from CScriptArray besoce he live in
 
as_memory.h
 
extern asALLOCFUNC_t userAlloc;
extern asFREEFUNC_t  userFree;


// We don't overload the new operator as that would affect the application as well


#ifndef AS_DEBUG


#define asNEW(x)        new(userAlloc(sizeof(x))) x
#define asDELETE(ptr,x) {void *tmp = ptr; (ptr)->~x(); userFree(tmp);}


#define asNEWARRAY(x,cnt)  (x*)userAlloc(sizeof(x)*cnt)
#define asDELETEARRAY(ptr) userFree(ptr)


#else


typedef void *(*asALLOCFUNCDEBUG_t)(size_t, const char *, unsigned int);


#define asNEW(x)        new(((asALLOCFUNCDEBUG_t)(userAlloc))(sizeof(x), __FILE__, __LINE__)) x
#define asDELETE(ptr,x) {void *tmp = ptr; (ptr)->~x(); userFree(tmp);}


#define asNEWARRAY(x,cnt)  (x*)((asALLOCFUNCDEBUG_t)(userAlloc))(sizeof(x)*cnt, __FILE__, __LINE__)
#define asDELETEARRAY(ptr) userFree(ptr)


#endif

 

need move asNEW, asDELTE, asNEWARRAY and asDELETEARRAY from as_memory to angelscript.h for we can use this. 


PARTNERS