MemoryTestAPIs Example

We have written a small sample program to help you test memory usage. Our MemoryTestAPIs example provides menu items that call many of the Memory Manager APIs. It allows you to test what happens when certain calls are made to the Memory Manager APIs by tapping, rather than requiring you to write code. Figure 6-3 shows the menus of the application.

The menus of the MemoryTestAPIs application
Figure 6-3. The menus of the MemoryTestAPIs application

The Code

There is no sanity checking before calling functions in this code (it is quite intentional!). For example, it doesn’t check to see whether we’ve allocated a handle before locking. The reason for this is so you, as a user, can call the APIs and see what the OS does with different sequences of calls.

Let’s walk through the code for each of the menus in order. We’ll look at the Handle menu and see what tricks we can cause when creating, freeing, locking, and unlocking handles. Next, we will mess about with pointers in FeatureMem menu. The last menu gives you information about the stack.

The code for all the Handle menu items share the following two variables:

static MemHandle gHandle;
static MemPtr gPointer;

Handle MemHandleNew

This code calls MemHandleNew , allocating 1,000 bytes. If the function returns NULL, it displays an Alert notifying the user:

gHandle = MemHandleNew(1000);
if (!gHandle)
  DisplayOutOfMemoryAlert(  );

Handle MemHandleFree

This code ...

Get Palm OS Programming, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.