![](https://forum.armkb.com/images/enlighten/misc/cat_top_ls.gif) |
heap-py object? :) |
![](https://forum.armkb.com/images/enlighten/misc/cat_top_rs.gif) |
02.03.2002, 12:33
|
#1
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 45
Posts: 1,894
Rep Power: 5
|
heap-py object? :)
define a class in C++, with a method
bool onHeap() const;
which returns true iff the object was created on heap.
ladies and gentlemen, your elegant classes are welcome <img src="smooch-1.gif" border="0">
|
|
|
03.03.2002, 19:04
|
#2
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
<blockquote><font size="1" face="MS Sans Serif, Verdana, Helvetica, sans-serif">quote:</font><hr>Originally posted by Hans Andersen:
define a class in C++, with a method
bool onHeap() const;
which returns true iff the object was created on heap.
ladies and gentlemen, your elegant classes are welcome <img src="smooch-1.gif" border="0"> <hr></blockquote>
но зачем?!?
|
|
|
04.03.2002, 09:58
|
#3
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 45
Posts: 1,894
Rep Power: 5
|
amen inch chi vor 'zachemov' a <img src="smooch-1.gif" border="0">
|
|
|
04.03.2002, 17:30
|
#4
|
Академик
Join Date: 09 2001
Location: inside myself
Posts: 5,369
Rep Power: 6
|
of course you have to call API
function "bool IsDataOnHeap(const void*)"
<img src="wink-5.gif" border="0">
I think that we have to find out the address of process's heap(-s) and walk by them, comparing address of the object with the range of that heap spaces.
h-m... <img src="smooch-1.gif" border="0"> ?
__________________
И повешенные могут качаться в неположенную сторону. /С.Е.Лец/
|
|
|
04.03.2002, 20:04
|
#5
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
<blockquote><font size="1" face="MS Sans Serif, Verdana, Helvetica, sans-serif">quote:</font><hr>Originally posted by Greco El:
of course you have to call API
function "bool IsDataOnHeap(const void*)"
<hr></blockquote>
no, it seems that standard language features are to be used only <img src="smooch-1.gif" border="0"> this has been discussed by mayers
|
|
|
04.03.2002, 23:17
|
#6
|
Младенец
Join Date: 11 2001
Location: Armenia
Posts: 11
Rep Power: 0
|
class A{
bool IsInHeap;
public:
A():IsInHeap(false){}
bool OnHeap(){return IsInHeap;}
void* operator new(size_t size)
{
IsInHeap=true;
...
}
};
|
|
|
04.03.2002, 23:23
|
#7
|
Младенец
Join Date: 11 2001
Location: Armenia
Posts: 11
Rep Power: 0
|
class A{
public:
bool OnHeap(){return true;}
private:
~A(){}
};
<img src="smooch-1.gif" border="0"> <img src="smooch-1.gif" border="0"> <img src="smooch-1.gif" border="0"> <img src="smooch-1.gif" border="0"> <img src="biggrin2.gif" border="0">
|
|
|
05.03.2002, 00:28
|
#8
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
<blockquote><font size="1" face="MS Sans Serif, Verdana, Helvetica, sans-serif">quote:</font><hr>Originally posted by Taurus:
class A{
bool IsInHeap;
public:
A():IsInHeap(false){}
bool OnHeap(){return IsInHeap;}
void* operator new(size_t size)
{
IsInHeap=true;<hr></blockquote>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
unknown identifier!!!
|
|
|
05.03.2002, 02:22
|
#9
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 45
Posts: 1,894
Rep Power: 5
|
to El:
As Aram said, u must use only C++ <img src="smooch-1.gif" border="0"> )
to Taurus:
Sur, Aramy (inchpes misht <img src="smooch-1.gif" border="0"> ) chisht a asum, qo operator new()-n static a <img src="smooch-1.gif" border="0">
urish ban gti <img src="smooch-1.gif" border="0">
to All:
come onnn, ppl, luzeq tenanq <img src="smooch-1.gif" border="0">
__________________
The flower that blooms in adversity is the most rare and beautiful of all.
|
|
|
05.03.2002, 02:29
|
#10
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 45
Posts: 1,894
Rep Power: 5
|
<blockquote><font size="1" face="MS Sans Serif, Verdana, Helvetica, sans-serif">quote:</font><hr>Originally posted by Taurus:
class A{
public:
bool OnHeap(){return true;}
private:
~A(){}
};
<img src="smooch-1.gif" border="0"> <img src="smooch-1.gif" border="0"> <img src="smooch-1.gif" border="0"> <img src="smooch-1.gif" border="0"> <img src="biggrin2.gif" border="0"> <hr></blockquote>
<img src="biggrin2.gif" border="0"> <img src="biggrin2.gif" border="0"> <img src="biggrin2.gif" border="0">
|
|
|
05.03.2002, 15:50
|
#11
|
Академик
Join Date: 09 2001
Location: inside myself
Posts: 5,369
Rep Power: 6
|
nu, narod, postol'ku poskol'ku debaty razvivajutsa, porobuem vnesti svoju leptu <img src="wink-5.gif" border="0">
Ne xotite sistemnyx spiskov HEAP-nutoj pamjati, budem ispol'zovat' sobstvennuju:
class famous_A
{
private:
static list<VOID_PTR> lst;
public:
bool IsDataOnHeap()
{ const void *ptr = (void*)this;
list<VOID_PTR>::iterator it = find( lst.begin(), lst.end(), ptr );
return ( it != lst.end() );
}
void * operator new(size_t size)
{ void *ptr = : <img src="embarrassed.gif" border="0"> perator new( size );
lst.push_front( ptr );
return ptr;
}
void operator delete(void *ptr)
{ list<VOID_PTR>::iterator it = find( lst.begin(), lst.end(), ptr );
if ( it != lst.end() )
{
: <img src="embarrassed.gif" border="0"> perator delete(ptr);
lst.erase(it);
}
}
};
list<VOID_PTR> famous_A::lst;
<img src="tounge.gif" border="0">
|
|
|
05.03.2002, 15:54
|
#12
|
Академик
Join Date: 09 2001
Location: inside myself
Posts: 5,369
Rep Power: 6
|
rojicy v topike smotrjatsa koloritno, ne tak li...?
<img src="smooch-1.gif" border="0">
|
|
|
05.03.2002, 17:11
|
#13
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
<blockquote><font size="1" face="MS Sans Serif, Verdana, Helvetica, sans-serif">quote:</font><hr>Originally posted by Greco El:
nu, narod, postol'ku poskol'ku debaty razvivajutsa, porobuem vnesti svoju leptu <img src="wink-5.gif" border="0">
Ne xotite sistemnyx spiskov HEAP-nutoj pamjati, budem ispol'zovat' sobstvennuju:
[...skiped...]
<hr></blockquote>
а будет ли это работать, если я унаследуюсь каким-нибудь виртуально-множественным образом от этого класса, создам объект наследника, и от него запрошу IsDataOnHeap()? <img src="smooch-1.gif" border="0"> ведь this уже будет не непосредственно тот, что у нас в списке <img src="wink-5.gif" border="0">
|
|
|
05.03.2002, 21:59
|
#14
|
Академик
Join Date: 09 2001
Location: inside myself
Posts: 5,369
Rep Power: 6
|
Gol' na vydumki xitra <img src="wink-5.gif" border="0">
na etot sluchaj mojno ispol'zovat' konechno je metod "IsDataOnHeap()", toka ego nado budet podredaktirovat' tak:
bool IsDataOnHeap(const void *ptr)
{
list<VOID_PTR>::iterator it = find( lst.begin(), lst.end(), ptr );
return ( it != lst.end() );
}
Vse-taki peredavat' nado budet.
Esli ne nravitsa nalichie dvux odinakovyx funkcij, to ostavljaem odnu:
bool IsDataOnHeap(const void *ptr=NULL)
libo
bool IsDataOnHeap(const void *ptr)
{
void *ppp;
ppp = (ptr) ? prt : this;
// then use "ppp"...
}
<img src="smooch-1.gif" border="0">
Eshe zamechanija ..? <img src="graemlins/nod.gif" border="0" alt="[Agree]" />
|
|
|
06.03.2002, 11:32
|
#15
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 45
Posts: 1,894
Rep Power: 5
|
Congratulations El,
a good approach <img src="smooch-1.gif" border="0"> osobenno klevo vygledit golobal operator new <img src="smooch-1.gif" border="0"> ))
No tut small-ik 'no' est':
-----
[QUOTE]Originally posted by Greco El:
[QB]Gol' na vydumki xitra <img src="wink-5.gif" border="0">
na etot sluchaj mojno ispol'zovat' konechno je metod "IsDataOnHeap()", toka ego nado budet podredaktirovat' tak:
-----
kto budet insert-nut' derived ukazatel v tvoj spisok? <img src="smooch-1.gif" border="0"> a little improvement is needed.
kto nibud' method pokoroche i poshustree? <img src="smooch-1.gif" border="0">
|
|
|
All times are GMT. The time now is 03:27. |
|
|