1999-04-13 23:03:45 +04:00
|
|
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
1999-11-06 06:43:54 +03:00
|
|
|
* The contents of this file are subject to the Netscape Public
|
|
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.mozilla.org/NPL/
|
1999-04-13 23:03:45 +04:00
|
|
|
*
|
1999-11-06 06:43:54 +03:00
|
|
|
* Software distributed under the License is distributed on an "AS
|
|
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
* implied. See the License for the specific language governing
|
|
|
|
* rights and limitations under the License.
|
1999-04-13 23:03:45 +04:00
|
|
|
*
|
1999-11-06 06:43:54 +03:00
|
|
|
* The Original Code is mozilla.org code.
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is Netscape
|
1999-04-13 23:03:45 +04:00
|
|
|
* Communications Corporation. Portions created by Netscape are
|
1999-11-06 06:43:54 +03:00
|
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
|
|
* Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
1999-04-13 23:03:45 +04:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/* We need this because Solaris' version of qsort is broken and
|
|
|
|
* causes array bounds reads.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef nsQuickSort_h___
|
|
|
|
#define nsQuickSort_h___
|
|
|
|
|
1999-04-14 02:16:52 +04:00
|
|
|
#include "nscore.h"
|
|
|
|
#include "prtypes.h"
|
1999-04-13 23:03:45 +04:00
|
|
|
/* Had to pull the following define out of xp_core.h
|
|
|
|
* to avoid including xp_core.h.
|
|
|
|
* That brought in too many header file dependencies.
|
|
|
|
*/
|
1999-04-14 02:16:52 +04:00
|
|
|
NS_BEGIN_EXTERN_C
|
1999-04-13 23:03:45 +04:00
|
|
|
|
2005-11-02 19:04:50 +03:00
|
|
|
/**
|
|
|
|
* Parameters:
|
|
|
|
* 1. the array to sort
|
|
|
|
* 2. the number of elements in the array
|
|
|
|
* 3. the size of the array
|
|
|
|
* 4. comparison function taking two elements and parameter #5 and
|
|
|
|
* returning an integer:
|
|
|
|
* + less than zero if the first element should be before the second
|
|
|
|
* + 0 if the order of the elements does not matter
|
|
|
|
* + greater than zero if the second element should be before the first
|
|
|
|
* 5. extra data to pass to comparison function
|
|
|
|
*/
|
1999-05-10 10:47:04 +04:00
|
|
|
PR_EXTERN(void) NS_QuickSort(void *, unsigned int, unsigned int,
|
|
|
|
int (*)(const void *, const void *, void *),
|
|
|
|
void *);
|
1999-04-13 23:03:45 +04:00
|
|
|
|
1999-04-14 02:16:52 +04:00
|
|
|
NS_END_EXTERN_C
|
1999-04-13 23:03:45 +04:00
|
|
|
|
|
|
|
#endif /* nsQuickSort_h___ */
|